web-dev-qa-db-fra.com

Impossible d'optimiser Chrome Window en mode sans tête

J'ai récemment mis à niveau ma version de chrome à 60 et chromedriver à la version 2.31. Poste que j'ai commencé à recevoir l'exception suivante lorsque j'essaie de maximiser la fenêtre du navigateur.

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

org.openqa.Selenium.WebDriverException: erreur inconnue: échec de change l'état de la fenêtre en maximisé, l'état actuel est normal (Session info: chrome = 60.0.3112.78) (Info conducteur: chromedriver = 2.31.488763 (092de99f48a300323ecf8c2a4e2e7cab51de5ba8), platform = Linux 4.2.0-27 -generic x86_64) (AVERTISSEMENT: le serveur n'a fourni aucune information sur la pile.) Durée ou expiration de la commande: 108 millisecondes Informations de construction: version: '2.53.1', révision: 'a36b8b1cd5757287168e54b817830adce9b0158d', heure: '2016-06-30 19:26:09 'Informations système: hôte:' 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' ID de session: c7de7149dd490cc7760d2f4fc49f0325 Informations sur le pilote: 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 ,visibleAlertBehaviour =, 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}]

Je lance mes tests en mode sans tête en utilisant ChromeDriver sur Geb.

  • Version Chrome - 60.0.3112.78
  • version chromedriver - 2.31.488763
  • OS - Ubuntu 14.04.4 LTS
  • Sélénium version - 2.53.1
  • Liaisons de langue WebDriver
  • Geb - 0.13.1
13
Pinaki

Comme vous exécutez des tests en mode sans tête, il n'y a pas de fenêtre de navigateur active disponible. En tant que tel votre 

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

échouerait toujours dans de telles situations car le pilote ne savait pas quelle fenêtre agrandir, car il n’y en avait pas. 

Vous pouvez suivre ce que @DebanjanB a mentionné ou vous pouvez démarrer le navigateur sans interface graphique avec une taille d'écran spécifique, telle que 1440x900, etc.

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

Ajoutez ci-dessous ChromeOption dans votre code:

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

Voir aussi ce blog pour plus

4
NarendraR
2
indranil32

J'utilise chromedriver 2.30 et le navigateur chrome v60 via rapporteur. Je lance aussi les tests sans tête même si je ne le fais pas via chromeoptions. Au lieu de cela, je lance des tests sans tête en utilisant xvfb-run sur une distribution Unix. Je rencontre ce problème aussi, même s’il échoue au hasard pour moi. Voir pile ci-dessous

[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=}]

Mon code au début de chaque test fait ce qui suit

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

changer pour 

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

ne fonctionne pas pour moi non plus malheureusement. Browser.manage (). Window (). Maxim () ne fonctionne-t-il toujours pas, car j'utilise sans tête avec xvfb-run plutôt que de le faire sans tête via des options chrome?

1
bhreinb

Voici la réponse à votre question:

Pour commencer, je vous suggère de modifier un peu la ligne de code:

Changement:

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

À:

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

Si cela ne vous aide pas, en supposant que vos liaisons Selenium sont Java et en utilisant Chrome en mode headless conformément aux meilleures pratiques, il est recommandé de maximiser le navigateur Google Chrome à travers la classe ChromeOptions comme suit:

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");
0
DebanjanB