Ho riscontrato un problema con il webdriver Chrome e selenio 2. Il problema è che quando avvio la mia sessione del browser utilizzando il chromedriver inizia sempre in una finestra che è meno della metà della dimensione della larghezza dello schermo disponibile. Poiché eseguo dei test su una pagina che cambia quando le dimensioni dello schermo cambiano, i test falliscono perché sto cercando di trascinare un elemento dalla parte superiore della pagina e rilasciarlo su un elemento che si trova nella parte inferiore della pagina. Ottengo un errore di scorrimento. Ma se la finestra è ingrandita, allora non capisco questo errore. Ma il problema è che, ogni volta che Chrome avvia una nuova sessione tramite il driver chrome, inizia sempre in una piccola finestra. Ho esplorato diverse opzioni per ottenere il browser per iniziare massimizzato:La finestra di Chrome per il selenio del selenio si avvia sempre con una piccola finestra
- effettuare una chiamata tramite javascript per cambiare le dimensioni della finestra utilizzando window.resizeTo (larghezza, altezza) ;. Tuttavia, questo non funziona nelle versioni successive di chrome (o firefox per quella materia).
- Avvia chrome con uno switch --start-maximized. Funziona su Windows, ma questo non fa nulla su un Mac.
- Avvia chrome con uno switch che specifica una directory di profilo. In questo modo il profilo definirà la dimensione della finestra. --profile-directory = ~/chromeprofile Questo ha funzionato quando ho avviato chrome dalla riga di comando, ma se faccio questo da selenio webdriver/chromedriver non fa alcuna differenza.
Quando provo:.. Driver.manage() Finestra setSize()() ottengo questa eccezione:
INFO: Executing: [93debf43cf70ad3557442a7e1aee4620, setWindowSize {"windowHandle":"current","width":2560,"height":1440}] org.openqa.selenium.UnsupportedCommandException: [GET, HEAD, DELETE] Command duration or timeout: 16 milliseconds Build info: version: '2.15.0', revision: '15105', time: '2011-12-08 09:56:25' System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.7.2', java.version: '1.6.0_29' Driver info: driver.version: RemoteWebDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:147) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:113) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:424) at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions$RemoteWindow.setSize(RemoteWebDriver.java:578) at com.domo.automation.framework.utility.WebDriverUtil.startWebDriver(WebDriverUtil.java:36) at com.domo.automation.tests.DomoWebDriverTestCase.setUp(DomoWebDriverTestCase.java:45) at junit.framework.TestCase.runBare(TestCase.java:132) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:71) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:199) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:62)
Quali altre opzioni ho potuto esplorare al fine di raggiungere questo obiettivo? Il problema è che la finestra è troppo piccola? Cosa posso fare per massimizzare automaticamente la finestra ogni volta che Chrome si avvia tramite webdriver su un Mac?
Ho notato che questo funziona per firefoxdriver ma non per il driver chrome. Con il chromedriver ottengo l'eccezione mostrata nel mio post. – justspamjustin