【发布时间】:2021-05-10 16:34:27
【问题描述】:
希望你没事。我正在尝试运行我的第一个 Seluim 测试,但每次都失败,大多数教程都使用 Chrome,但我使用的是 Microsoft Edge,我想每次都在那里运行测试,我根据下载了正确的 Edge Webdriver 版本edge://settings/help,这是我在代码和项目文件中所做的: 我的代码:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
//import org.openqa.selenium.edge.EdgeDriver;
public class Test {
@org.testng.annotations.Test
public void test() {
WebDriver driver = new ChromeDriver();
System.setProperty("webdriver.chrome.driver", "msedgedriver.exe");
driver.get("http://automationpractice.com/index.php?controller=authentication&back=my-account");
}
} ```
The error:
[RemoteTestNG] 检测到 TestNG 版本 7.3.0 失败:测试 java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置;有关详细信息,请参阅https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver。最新版本可以从http://chromedriver.storage.googleapis.com/index.html下载 在 com.google.common.base.Preconditions.checkState(Preconditions.java:847) 在 org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:134) 在 org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35) 在 org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159) 在 org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355) 在 org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94) 在 org.openqa.selenium.chrome.ChromeDriver.(ChromeDriver.java:123) 在 Test.test(Test.java:7) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:564) 在 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132) 在 org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:599) 在 org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174) 在 org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) 在 org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822) 在 org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147) 在 org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) 在 org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) 在 java.base/java.util.ArrayList.forEach(ArrayList.java:1511) 在 org.testng.TestRunner.privateRun(TestRunner.java:764) 在 org.testng.TestRunner.run(TestRunner.java:585) 在 org.testng.SuiteRunner.runTest(SuiteRunner.java:384) 在 org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378) 在 org.testng.SuiteRunner.privateRun(SuiteRunner.java:337) 在 org.testng.SuiteRunner.run(SuiteRunner.java:286) 在 org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) 在 org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) 在 org.testng.TestNG.runSuitesSequentially(TestNG.java:1218) 在 org.testng.TestNG.runSuitesLocally(TestNG.java:1140) 在 org.testng.TestNG.runSuites(TestNG.java:1069) 在 org.testng.TestNG.run(TestNG.java:1037) 在 org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115) 在 org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251) 在 org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)
================================================ 默认测试 测试运行:1,失败:1,跳过:0
================================================ 默认套件 总测试运行:1,通过:0,失败:1,跳过:0 ================================================```
【问题讨论】:
-
你为什么使用chrome驱动而不是msedge驱动。
标签: java selenium selenium-webdriver selenium-chromedriver selenium-grid