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