Как запустить драйвер Chrome с помощью selenium-maven-plugin для запуска сервера Selenium

Прежде всего, я извиняюсь, если эта тема рассматривается в другом посте, но я искал решение, как два дня, и я не смог его получить.

Я добавил новый профиль в свой POM, в котором я использую selenium-maven-plugin:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>selenium-maven-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>start-server</goal>
            </goals>
            <configuration>
                <background>true</background>
                <debug>true</debug>
                <systemProperties>
                    <webdriver.chrome.driver>${webdriver.chrome}</webdriver.chrome.driver>
                </systemProperties>
            </configuration>
        </execution>
    </executions>
</plugin>

Их в свойствах я добавил путь, где находится chromedriver.

Когда я выполняю чистую установку mvn, я получаю следующую ошибку:

org.openqa.selenium.WebDriverException: org.openqa.selenium.net.UrlChecker.waitUntilAvailable(Ljava/net/URL;JLjava/util/concurrent/TimeUnit;)V
Command duration or timeout: 434 milliseconds
Build info: version: '2.31.0', revision: '1bd294d185a80fa4206dfeab80ba773c04ac33c0', time: '2013-02-27 13:51:26'
System info: os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.8.5', java.version: '1.6.0_51'
Driver info: org.openqa.selenium.remote.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:187)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:554)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:216)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:111)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:115)
    at com.qa.framework.drivers.multidevice.webdriver.MultiDeviceWebDriver.setWebDriver(MultiDeviceWebDriver.java:191)
    at com.qa.framework.drivers.web.WebDriver.launchBrowser(WebDriver.java:249)
    at com.qa.games.tests.BaseTest.beforeTestCase(BaseTest.java:38)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:551)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:213)
    at org.testng.internal.Invoker.invokeMethod(Invoker.java:640)
    at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:894)
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1219)
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NoSuchMethodError: org.openqa.selenium.net.UrlChecker.waitUntilAvailable(Ljava/net/URL;JLjava/util/concurrent/TimeUnit;)V
    at org.openqa.selenium.chrome.ChromeDriverService.start(ChromeDriverService.java:150)
    at org.openqa.selenium.chrome.ChromeCommandExecutor.execute(ChromeCommandExecutor.java:48)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:432)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:140)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:95)
    at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:107)
    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.server.DefaultDriverFactory.callConstructor(DefaultDriverFactory.java:58)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:52)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:197)
    at org.openqa.selenium.remote.server.DefaultSession$BrowserCreator.call(DefaultSession.java:184)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at org.openqa.selenium.remote.server.DefaultSession$1.run(DefaultSession.java:151)
    ... 3 more

Если вместо того, чтобы указывать место вебдрайвера, я добавляю в код: System.setProperty("webdriver.chrome.driver", "/Users/support/Desktop/Google Chrome.app/Contents/MacOS/chromedriver.exe" );, то возвращается, что свойство webdriver.chrome.driver не определено.

Я также пытался выполнить mvn clean install -Dwebdriver.chrome.driver="path/chromedriver", и он возвращает ту же ошибку.

Я пробовал устанавливать chromedriver разными путями, без .exe и с .exe.

Я не знаю, что мне не хватает, даже я начинаю думать, что у этого нет никакого решения, потому что, если я выполняю свои тесты с запущенным селеном с помощью следующей командной строки: java -jar /path/selenium-server-standalone-2.37.0.jar -Dwebdriver.chrome.driver=/path/chromedriver", мои тесты работают. Я просто не хотел бы ожидать, работает ли селен или не выполнять мои тесты, но кажется, что это невозможно.

Я был бы очень признателен, если бы кто-то из вас помог мне в этом.


person user2944414    schedule 01.11.2013    source источник
comment
Вам удалось заставить его работать? Как?   -  person Germann Arlington    schedule 10.04.2015


Ответы (1)


Плагин selenium maven не работает уже более двух лет. http://mvnrepository.com/artifact/org.codehaus.mojo/selenium-maven-plugin/2.3

Попробуйте запустить с гораздо более старой версией селена (например, понизить версию с 2.37.0 до 2.21.0).

person hearnden    schedule 14.07.2014
comment
или мы просто не должны больше использовать плагин selenium maven? - person Tim Boland; 29.11.2014