2017-07-28 28 views
6

मैंने हाल ही में अपने क्रोम संस्करण को 60 और क्रोमड्राइवर को संस्करण 2.31 में अपग्रेड किया है। पोस्ट करें कि जब मैं ब्राउज़र विंडो को अधिकतम करने का प्रयास करता हूं तो मुझे निम्न अपवाद प्राप्त करना शुरू हो गया है।हेडलेस मोड में क्रोम विंडो को अधिकतम करने में सक्षम नहीं

driver.driver.manage().window().maximize() 

org.openqa.selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal (Session info: chrome=60.0.3112.78) (Driver info: chromedriver=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8),platform=Linux 4.2.0-27-generic x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 108 milliseconds Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09' System info: host: 'bb-blr-prod-stage-stg1-01', ip: '10.3.211.2', os.name: 'Linux', os.arch: 'amd64', os.version: '4.2.0-27-generic', java.version: '1.7.0_80' Session ID: c7de7149dd490cc7760d2f4fc49f0325 Driver info: org.openqa.selenium.chrome.ChromeDriver Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, browserName=chrome, chrome={userDataDir=/tmp/.org.chromium.Chromium.WABPhO, chromedriverVersion=2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8)}, networkConnectionEnabled=false, unexpectedAlertBehaviour=, rotatable=false, setWindowRect=true, locationContextEnabled=true, mobileEmulationEnabled=false, pageLoadStrategy=normal, version=60.0.3112.78, takesHeapSnapshot=true, cssSelectorsEnabled=true, databaseEnabled=false, handlesAlerts=true, browserConnectionEnabled=false, webStorageEnabled=true, nativeEvents=true, hasTouchScreen=false, applicationCacheEnabled=false, takesScreenshot=true}]

मैं Geb. पर ChromeDriver का उपयोग कर नेतृत्वहीन मोड में मेरी परीक्षण चलाने

  • क्रोम संस्करण - 60.0.3112.78
  • chromedriver संस्करण - 2.31.488763
  • ओएस - Ubuntu 14.04.4 LTS
  • सेलेनियम संस्करण - 2.53.1
  • WebDriver भाषा बाइंडिंग
  • Geb - 0.13.1
+0

कौन सा सेलेनियम बाइंडिंग (भाषा) के लिए this blog उल्लेख? – DebanjanB

उत्तर

0

यहाँ अपने प्रश्न का उत्तर है:

एक पहली बार सोचा मैं तुम्हें कोड थोड़ा की लाइन बदलने के लिए सुझाव है पर:

बदलें:

driver.driver.manage().window().maximize() 

करने के लिए:

driver.manage().window().maximize() 

मामले में यह मदद नहीं करता है, अपने सेलेनियम बाइंडिंग को Java के रूप में मानते हुए औरका उपयोग headless मोड में सर्वोत्तम प्रथाओं के अनुसार करते हुए, ChromeOptions के माध्यम से Google क्रोम ब्राउज़र को अधिकतम करने की अनुशंसा की जाती है वर्ग इस प्रकार है:

System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe"); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("--headless"); 
options.addArguments("start-maximized"); 
WebDriver driver = new ChromeDriver(options); 
driver.navigate().to("https://google.com"); 
7

आप एक बिना सिर मोड में परीक्षण चल रहे हैं से उपलब्ध नहीं active ब्राउज़र विंडो कर रहे हैं। के रूप में इस तरह के अपने

driver.driver.manage().window().maximize() 

हमेशा की तरह, ऐसी स्थितियों में असफल क्योंकि ड्राइवर जो खिड़की को अधिकतम करने के पता नहीं है के बाद से वहाँ किसी भी उपलब्ध नहीं हैं।

आप या तो पालन कर सकते हैं क्या @DebanjanB उल्लेख किया है या आप 1440x900 आदि की तरह एक विशिष्ट स्क्रीन आकार के साथ बिना सिर ब्राउज़र शुरू कर सकते हैं, इस

driver.manage().window().setSize(new Dimension(1440, 900)); 
0

की तरह कुछ कर रही मैं chromedriver 2.30 & क्रोम ब्राउज़र V60 उपयोग कर रहा हूँ प्रोटैक्टर के माध्यम से। मैं परीक्षणों को हेडलेस भी चलाता हूं हालांकि मैं क्रोमोप्शन के माध्यम से ऐसा नहीं करता हूं। इसके बजाय मैं एक यूनिक्स वितरण पर xvfb-run का उपयोग करके हेडलेस परीक्षण चलाता हूं। मुझे इस मुद्दे का सामना करना पड़ रहा है हालांकि यह मेरे लिए यादृच्छिक रूप से विफल रहता है। प्रत्येक परीक्षा की शुरुआत में नीचे

[chrome #11]  [31mWebDriverError: unknown error: failed to change window state to maximized, current state is normal 
[chrome #11]   (Session info: chrome=60.0.3112.78) 
[chrome #11]   (Driver info: chromedriver=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57),platform=Linux 3.10.0-514.26.2.el7.x86_64 x86_64) (WARNING: The server did not provide any stacktrace information) 
[chrome #11]  Command duration or timeout: 122 milliseconds 
[chrome #11]  Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
[chrome #11]  System info: host: 's1wfadvcilvm08', ip: '172.16.184.183', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-514.26.2.el7.x86_64', java.version: '1.8.0_141' 
[chrome #11]  Driver info: org.openqa.selenium.chrome.ChromeDriver 
[chrome #11]  Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.30.477691 (6ee44a7247c639c0703f291d320bdf05c1531b57), userDataDir=/tmp/.org.chromium.Chromium.BNsN1w}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=60.0.3112.78, platform=LINUX, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, unexpectedAlertBehaviour=}] 

मेरे कोड ढेर निम्न

browser.manage().window().maximize(); 

driver.driver.manage().window().maximize(); 
driver.manage().window().maximize(); 

के लिए बदल रहा मेरे लिए या तो दुर्भाग्य से काम नहीं करता है। Browser.manage() नहीं होना चाहिए।विंडो()। maximize() अभी भी काम कर रहा है क्योंकि मैं क्रोम विकल्पों के माध्यम से हेडलेस करने के बजाए xvfb-run का उपयोग करके हेडलेस चला रहा हूं?

1

ChromeOption नीचे जोड़े अपने कोड में:

options.addArguments("--window-size=1325x744"); 

भी अधिक

+0

सेलेनियम 3.8.1 और हेडलेस मोड में क्रोमड्राइवर 2.34 में काम करने की पुष्टि की। एक कामकाज के रूप में, मैंने स्थानीय मशीन के मूल संकल्प के लिए एक कॉन्फ़िगरेशन डाला ताकि एक विशिष्ट मूल्य को हार्डकोड न किया जा सके। – silver

संबंधित मुद्दे