MicrosoftWebDriver загрузка веб-драйвера null

У меня ошибка при запуске selenium на локальном компьютере с 64-разрядной версией Windows 10 (Microsoft Edge версия: 25.10586.672.0) и Microsoft WebDriver - выпуск 10240. Моя версия Selenium: 3.6.0

public class SeleniumTest {
    private WebDriver driver;
      @BeforeClass
    public void getWebDriver() {
        try {
            System.setProperty("webdriver.edge.driver", "myapp/driver/MicrosoftWebDriver.exe");
            DesiredCapabilities capabilities = DesiredCapabilities.edge();
            capabilities.setCapability(CapabilityType.ForSeleniumServer.ENSURING_CLEAN_SESSION, true);
            capabilities.setCapability(CapabilityType.PAGE_LOAD_STRATEGY, "eager");             
            capabilities.setPlatform(Platform.WIN10);
            capabilities.setBrowserName(BrowserType.EDGE);
            capabilities.setVersion("");
            driver = new EdgeDriver(capabilities);              
        } catch (Exception e) {
                e.printStackTrace();
        }

        driver.get(Constant.URL);
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(2, TimeUnit.SECONDS);
    }

    @AfterClass
    public void quitDriver() throws InterruptedException {
        Thread.sleep(3000);
        driver.quit();
    }
       @Test ()
       public void aTest() {
       }
      @Test ()
      public void bTest() {
       }
}

Когда я запускаю код, он открывает Edge Browser и выдает ошибку:

org.openqa.selenium.NoSuchSessionException: null (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 873 milliseconds
Build info: version: '3.6.0', revision: '6fbf3ec767', time: '2017-09-27T15:28:36.4Z'
System info: host: 'computername', ip: 'myip', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_111'
Driver info: driver.version: EdgeDriver

2 ответа

Решение

Вы можете рассмотреть примечания к выпуску, в которых упоминается:

Обновление привязок.NET, чтобы не отправлять неправильные возможности W3C Firefox Ранее RemoteWebDriver отправлял один и тот же словарь возможностей, используя свойства "требуемые возможности" и "возможности" при запросе нового удаленного сеанса. В случае языковых привязок, явно запрашивающих использование устаревшего драйвера Firefox, словарь возможностей будет содержать свойства, которые недопустимы для W3C-совместимого удаленного сервера. Чтобы решить эту проблему, мы замаскируем явную попытку, установив свойство, которое заставляет.NET RemoteWebDriver отправлять совместимый только с устаревшими версиями новый запрос сеанса при явном запросе устаревшего драйвера.

Я не вижу какой-либо существенной ошибки как таковой в вашем коде, кроме одной, чтобы увидеть NoSuchSessionException, Вместо:

DesiredCapabilities capabilities = DesiredCapabilities.edge();

Вы должны использовать:

DesiredCapabilities cap = new DesiredCapabilities();

Возможно, вам также нужно запустить службу водителя, т.е.

service = new EdgeDriverService.Builder()
    .usingDriverExecutable(new File("path/to/my/MicrosoftWebDriver.exe"))
    .usingAnyFreePort()
    .build();
service.start();

Посмотрите на этот пример EdgeDriver.

Другие вопросы по тегам