gpt4 book ai didi

java - 如何使用 selenium-maven-plugin 启动 chrome 驱动程序来启动 Selenium 服务器

转载 作者:行者123 更新时间:2023-12-01 04:13:04 25 4
gpt4 key购买 nike

如果这个主题在另一篇文章中得到处理,我首先表示歉意,但我一直在寻找解决方案两天,但我无法得到它。

我在 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 clean install 时,出现以下错误:

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。

我不知道我错过了什么,即使我开始认为这没有任何解决方案,因为如果我通过以下命令行启动 Selenium 来执行测试:java -jar/path/selenium-server-standalone-2.37.0.jar -Dwebdriver.chrome.driver=/path/chromedriver",我的测试正在工作。我只是不想等待 selenium 是否正在运行或者不执行我的测试,但似乎这是不可能的。

如果你们中有人能在这方面帮助我,我将非常感激。

最佳答案

selenium maven 插件已经消亡两年多了。 http://mvnrepository.com/artifact/org.codehaus.mojo/selenium-maven-plugin/2.3

尝试使用旧版本的 selenium 运行(例如,从 2.37.0 降级到 2.21.0)。

关于java - 如何使用 selenium-maven-plugin 启动 chrome 驱动程序来启动 Selenium 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19724016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com