Nous sommes sur Mac, utilisant la version de Chrome 70.0.3538.67 (Build officiel) (64 bits), ChromeDriver 2.43.600229. Les fenêtres Chrome apparaissent, mais l’URL reste bloquée sur "data:". (trace de pile ci-dessous)
Nous avons trouvé une solution de contournement avec Chrome version 69 avec chromedriver 2.43. Toutefois, Chrome continue d’insister pour se mettre à jour.
Nous exécutons Selenium-Java 3.4, htmlunit-driver 2.27, test 6.9.4, junit 4.7 avec maven-compiler-plugin 3.6.1, maven-surefire-plugin 2.22.0.
org.openqa.Selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal
(Session info: chrome=70.0.3538.67)
(Driver info: chromedriver=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052),platform=Mac OS X 10.13.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 107 milliseconds
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: Host: 'edited', ip: 'edited', os.name: 'Mac OS X', os.Arch: 'x86_64', os.version: '10.13.6', Java.version: '1.8.0_131'
Driver info: org.openqa.Selenium.chrome.ChromeDriver
Capabilities [{mobileEmulationEnabled=false, hasTouchScreen=false, platform=MAC, acceptSslCerts=false, goog:chromeOptions={debuggerAddress=localhost:52400}, acceptInsecureCerts=false, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=, applicationCacheEnabled=false, rotatable=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.43.600229 (3fae4d0cda5334b4f533bede5a4787f7b832d052), userDataDir=/var/folders/cd/rrq4w8sd3gz92ygpfx5_kwtw0000gp/T/.org.chromium.Chromium.DCVcH3}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, version=70.0.3538.67, browserConnectionEnabled=false, nativeEvents=true, locationContextEnabled=true, cssSelectorsEnabled=true}]
Session ID: adb51408a3b04f990288d09604daa3a9
at Sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at Sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.Java:62)
at Sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.Java:45)
at Java.lang.reflect.Constructor.newInstance(Constructor.Java:423)
at org.openqa.Selenium.remote.ErrorHandler.createThrowable(ErrorHandler.Java:215)
at org.openqa.Selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.Java:167)
at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:671)
at org.openqa.Selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.Java:694)
at org.openqa.Selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.maximize(RemoteWebDriver.Java:925)
at ufis.common.TestSuiteUtils.getDriver(TestSuiteUtils.Java:59)
at ufis.test.cv.categories.research.independentresearch.IndependentResearchValidationTests.setUpClass(IndependentResearchValidationTests.Java:45)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.Java:85)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.Java:517)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.Java:213)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.Java:140)
at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.Java:170)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.Java:104)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
at Java.lang.Thread.run(Thread.Java:748)
Ce message d'erreur ...
org.openqa.Selenium.WebDriverException: unknown error: failed to change window state to maximized, current state is normal
... implique que le ChromeDriver n'a pas pu maximiser l'état de la fenêtre du client Navigateur Chrome}.
Après la publication de la version 70 de Chrome, certains d'entre vous ont signalé que l'utilisation de ChromeDriver pour agrandir la fenêtre du navigateur sur Mac ne fonctionnait plus. L'équipe ChromeDriver a étudié ce problème et créé un correctif. Les versions de ChromeDriver avec le correctif sont désormais disponibles aux emplacements suivants:
Instantané du courrier électronique de la version de ChromeDriver
Cependant, votre problème principal est le incompatibility entre la version des fichiers binaires que vous utilisez comme suit:
D'un autre point de vue, ce problème ressemble à un problème de régression de Demande de fonctionnalité: ChromeDriver pour prendre en charge le redimensionnement de la fenêtre via une connexion distante .
ChromeDriver v2.43 dans les notes de publication ont explicitement mentionné:
ChromeDriver pour prendre en charge le redimensionnement de la fenêtre via une connexion distante
Toutefois, conformément à meilleures pratiques pour optimiser le client navigateur Chrome}, il est suggéré d'utiliser la classe ChromeOptions
comme suit:
System.setProperty("webdriver.chrome.driver", "C:\\your_directory\\chromedriver.exe");
ChromeOptions opt = new ChromeOptions();
opt.addArguments("disable-infobars");
opt.addArguments("--start-maximized");
opt.addArguments("--disable-extensions");
WebDriver driver = new ChromeDriver(opt);
driver.get("https://google.com");
Vous pouvez trouver une discussion détaillée dans driver.manage (). Window (). Maxim () avec ChromeDriver 2.33
Si la même chose s’était produite avec Selenium 3.14.0, Chrome 70, Chromedriver 2.43.
Le correctif pour moi était de supprimer l'indicateur --start-maximized
de mes chromeoptions et, une fois le navigateur ouvert, appelez une méthode qui:
driver.manage().window().setPosition(new Point(0, 0));
driver.manage().window().setSize(new Dimension(1920, 1080));
Nous exécutons également notre automatisation à distance dans les conteneurs AWS EC2 exécutant CentOS . Sous Windows et Mac, l'indicateur ci-dessus ne présentait aucun problème lors de son exécution locale.
La mise à jour de chromedriver vers la version 2.44 a résolu le problème pour moi (en quelque sorte). Ne recevez plus l'erreur, mais la fenêtre est maximisée horizontalement au-delà de l'écran. Cependant, les tests fonctionnent.
Option 1. Installer via homebrew
Si vous l'avez déjà installé via homebrew, il a été déplacé dans fût. Alors, désinstallez l'ancienne version:
brew uninstall chromedriver
Ensuite, installez la nouvelle version de cask:
brew tap homebrew/cask
brew cask install chromedriver
Maintenant, vous devriez avoir la nouvelle version dans votre chemin et l'erreur est partie.
Option 2. Télécharger le pilote
Téléchargez le pilote de
https://chromedriver.storage.googleapis.com/index.html?path=2.44/
Et placez-le sur votre chemin.
Pour ceux qui rencontrent ce problème avec Codeception, il suffit de changer l’option window_size en false.
- Webdriver:
url: 'http://localhost/'
window_size: false