#java #selenium #selenium-webdriver #selenium-chromedriver #selenium-grid
#java #selenium #selenium-webdriver #selenium-chromedriver #selenium-сетка
Вопрос:
надеюсь, что у вас все в порядке. Я пытаюсь запустить свой первый тест Selinuim, но он каждый раз терпит неудачу, в большинстве руководств используется Chrome, но я использую Microsoft Edge, и я хотел бы каждый раз запускать тесты там, я загрузил версию right 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=authenticationamp;back=my-account");
}
} ```
The error:
[RemoteTestNG] обнаружено тестирование версии 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.Предварительные условия.Проверка состояния (Предварительные условия.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(собственный метод)
в java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
в java.base/jdk.internal.reflect.Делегирование methodaccessorimpl.invoke(Делегирование methodaccessorimpl.java:43)
в java.base/java.lang.reflect.Метод.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.invoketestметоды (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.Выполняется последовательно (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 ===============================================«
Комментарии:
1. Почему вы используете драйвер Chrome, а не драйвер msedge.
Ответ №1:
System.setProperty("webdriver.chrome.driver", "msedgedriver.exe");
вместо относительного пути укажите полный путь
также измените порядок
System.setProperty("webdriver.chrome.driver", "c:\somepath\msedgedriver.exe");
WebDriver driver = new ChromeDriver();
и вместо chrome используйте:
webdriver.edge.driver
используйте, как
System.setProperty("webdriver.edge.driver","D:\msedgedriver.exe");
WebDriver driver = new EdgeDriver();
https://www.selenium.dev/documentation/en/webdriver/driver_requirements/
смотрите документацию