Selenium для Edge в сборке 18362 или выше

У меня проблемы с webdriver для Edge. Я знаю, что драйвер устанавливается командой:

DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0

Но каков следующий шаг после этого? Вот мой код на Java:

System.setProperty("webdriver.edge.driver", "[I don't know the path of the install]");
@SuppressWarnings("deprecation")
WebDriver driverEdge = new EdgeDriver(options);
driverEdge.get("https://www.google.com/");

person Joshua Jaynes    schedule 20.12.2019    source источник
comment
Следующим шагом будет поиск места, где он установлен ... Но в целом, если вы можете включить исполняемые файлы драйвера в свой репозиторий, то вы всегда будете знать, где найти драйвер. Вы запускаете свой код локально или в каком-то виде?   -  person natn2323    schedule 20.12.2019


Ответы (3)


 String windir = System.getenv("windir");
 String edgeDriverPath = windir + "\\SysWOW64\\MicrosoftWebDriver.exe";  
 System.setProperty("webdriver.edge.driver", edgeDriverPath); 
 driver = new EdgeDriver();

Это предполагает 64-разрядную версию, и я на самом деле не тестировал ее, поэтому, пожалуйста, дайте мне знать, работает ли она. Я считаю, что для 32-разрядной версии каталог будет «System32» вместо «SysWOW64».

person pcalkins    schedule 20.12.2019
comment
Ладно, думаю, я понял, что делаю не так. Я думаю, начиная с Windows 10 1903, у Edge Web Driver не обязательно должно быть свойство SystemsetProperty. Итак, это то, что у меня есть сейчас, и я могу работать без проблем - person Joshua Jaynes; 20.12.2019
comment
WebDriver driverEdge = новый EdgeDriver (); driverEdge.get (google.com); - person Joshua Jaynes; 20.12.2019
comment
ооо, я не знал, что ... System.setProperty будет для среды выполнения Java, но вы говорите, что строка не нужна? - person pcalkins; 20.12.2019
comment
Верный. Мне нужно было использовать только System.setProperty для Chrome, Firefox и IE11. - person Joshua Jaynes; 07.01.2020
comment
спасибо, что сообщили мне ... в данный момент у меня нет машины Win10 для тестирования. - person pcalkins; 07.01.2020

Вы можете найти Microsoft Edge WebDriver из следующих папок:

C:\\Windows\\WinSxS\\amd64_microsoft-webdriver-server-components_31bf3856ad364e35_10.0.18362.1_none_c52dd23839475f5b\\MicrosoftWebDriver.exe

C:\\Windows\\System32\\MicrosoftWebDriver.exe

C:\\Windows\\SysWOW64\\MicrosoftWebDriver.exe

C:\\Windows\\WinSxS\\wow64_microsoft-webdriver-server-components_31bf3856ad364e35_10.0.18362.1_none_cf827c8a6da82156\\MicrosoftWebDriver.exe

Затем обратитесь к следующему коду, чтобы использовать Microsoft Edge WebDriver с Java:

package seleniumtest; 

import org.openqa.selenium.By;
import org.openqa.selenium.Keys; 
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class testsample {

    public static void main(String[] args) { 

         //String windir = System.getenv("windir");
         //String edgeDriverPath = windir + "\\SysWOW64\\MicrosoftWebDriver.exe";  

         //String edgeDriverPath = "C:\\Windows\\WinSxS\\amd64_microsoft-webdriver-server-components_31bf3856ad364e35_10.0.18362.1_none_c52dd23839475f5b\\MicrosoftWebDriver.exe";
         //String edgeDriverPath = "C:\\Windows\\System32\\MicrosoftWebDriver.exe";
         //String edgeDriverPath = "C:\\Windows\\SysWOW64\\MicrosoftWebDriver.exe";

         String edgeDriverPath = "C:\\Windows\\WinSxS\\wow64_microsoft-webdriver-server-components_31bf3856ad364e35_10.0.18362.1_none_cf827c8a6da82156\\MicrosoftWebDriver.exe";

         System.setProperty("webdriver.edge.driver", edgeDriverPath); 
         WebDriver driver = new EdgeDriver();

         //replace the URL of the web page here..
         driver.get("https://www.bing.com");
         //wait page load success.
         WebDriverWait wait = new WebDriverWait(driver, 5);
         wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("sb_form_q")));

         //find the element from the web page.
         WebElement element = driver.findElement(By.id("sb_form_q"));
         //enter value and search
         element.sendKeys("web driver");
         element.sendKeys(Keys.ENTER);  
    }    
}
person Zhi Lv    schedule 23.12.2019

Новое в EdgeHTML 18

EdgeHTML 18 включает следующие новые и обновленные функции, представленные в текущем выпуске платформы Microsoft Edge, начиная с Обновление Windows 10 за октябрь 2018 г. (10/2018, сборка 17763). Информацию об изменениях в конкретных предварительных сборках Windows Insider см. В Журнал изменений Microsoft Edge и Что нового в EdgeHTML.


Согласно блогу Microsoft Улучшение автоматического тестирования в Microsoft Edge с помощью новых возможностей WebDriver, поддержки протокола W3C и автоматических обновлений:

WebDriver должен был соответствовать версии Microsoft Edge, с которой вы тестируете, что исторически требовало вручную сопоставления автономной загрузки WebDriver с соответствующей версией Windows на вашем устройстве.

Итак, теперь WebDriver является Функция Windows по запросу (FoD), которая гарантирует, что она всегда автоматически обновляется, а также позволяет использовать некоторые новые способы получения Microsoft WebDriver.

Шаги

  • Включите режим разработчика, который установит соответствующую версию WebDriver.

    Open Settings app > Go to Update & Security > For Developer and then select "Developer Mode".
    
  • Вы также можете установить автономную версию WebDriver одним из двух способов:

    • Search "Manage optional features" from Start, then select "Add a Feature", "WebDriver".
    • Установите через DISM, выполнив следующую команду в командной строке с повышенными привилегиями:

      DISM.exe /Online /Add-Capability /CapabilityName:Microsoft.WebDriver~~~~0.0.1.0
      

Заключение

После установки MicrosoftWebDriver с расширенной командной строкой он будет обновлен автоматически, и вам не придется указывать абсолютный путь для Двоичный файл MicrosoftWebDriver через System.setProperty().


Ссылка

Вы можете найти подробное обсуждение в:

person DebanjanB    schedule 03.01.2020
comment
Важное замечание: убедитесь, что не установлен пакет Selenium.WebDriver.MicrosoftDriver. Я выполнил описанные вами шаги (я нашел их на веб-сайте Microsoft), но я все еще получал сообщения об ошибках, сообщающих, что соединение было принудительно закрыто. Удаление пакета решило ошибку. - person Marc Levesque; 10.08.2020
comment
@MarcLevesque Ваш комментарий должен быть очень полезным для сообщества. Не стесняйтесь редактировать ответ и добавлять соответствующую информацию. - person DebanjanB; 10.08.2020