У меня проблема с использованием веб-драйвера Chrome и Selenium 2. Проблема в том, что когда я запускаю сеанс браузера с помощью хромированного драйвера, он всегда запускается в окне, размер которого меньше половины доступной ширины экрана. Поскольку я провожу тесты на странице, которая изменяется при изменении размера экрана, мои тесты терпят неудачу, потому что я пытаюсь перетащить элемент из верхней части страницы в элемент, который находится внизу страницы. Я получаю ошибку при прокрутке. Но если окно развернуто, я не получаю эту ошибку. Но проблема в том, что каждый раз, когда Chrome запускает новый сеанс через драйвер Chrome, он всегда запускается в небольшом окне. Я изучил много разных вариантов, чтобы браузер начал работать в максимальном режиме:
- Сделайте вызов через javascript, чтобы изменить размер окна, используя window.resizeTo (width, height) ;. Однако это не работает в более поздних версиях Chrome (или Firefox, если на то пошло).
- Запустите Chrome с помощью переключателя --start-maximized. Это работает в Windows, но ничего не делает на Mac.
- Начните хром с переключателя, указывающего каталог профиля. Таким образом, профиль будет определять размер окна. --profile-directory = ~ / chromeprofile Это сработало, когда я запустил chrome из командной строки, но если я сделаю это из selenium webdriver / chromedriver, это не имеет никакого значения.
Когда я пробую: driver.manage (). Window (). SetSize (), я получаю следующее исключение:
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)
Какие еще варианты я мог бы изучить, чтобы добиться этого? Проблема в том, что окно слишком маленькое? Что я могу сделать, чтобы автоматически максимизировать окно каждый раз, когда Chrome запускается через веб-драйвер на Mac?