0

Попытка сделать код от http://blogs.windows.com/msedgedev/2015/07/23/bringing-automated-testing-to-microsoft-edge-through-webdriver/ работы.Edge Browser Ошибка WebDriver

Получение уродливого исключения.

Репро шаги.

Установить веб-драйвер из предоставленных ссылок (24 июля 2015 г. WebDriver) Создать консольное приложение. Nuget in Selenium.WebDriver, Selenium.Support. Код запуска, консольное окно подходит.

Когда код попадает в драйвер.Url = "https://www.bing.com", он выдает исключение, как указано ниже.

NoSuchWindowException - необработанное исключение типа 'OpenQA.Selenium.NoSuchWindowException' произошло в WebDriver.dll

Мой фрагмент ниже:

using System.IO; 
using OpenQA.Selenium; 
using OpenQA.Selenium.Edge; 
using OpenQA.Selenium.Remote; 
using OpenQA.Selenium.Chrome; 
using OpenQA.Selenium.Support.UI; 
namespace WebDriverPlay 
{ 
public class msedgedev_sample 
{ 
    public static void RunMSEdgeDevSample() 
    { 
     Console.WriteLine("running MSEdgeDev Sample"); 
     RemoteWebDriver driver = null; 
     string serverPath = "Microsoft Web Driver"; 
     try 
     { 
      if (System.Environment.Is64BitOperatingSystem) 
      { 
       serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles(x86)%"), serverPath); 
      } 
      else 
      { 
       serverPath = Path.Combine(System.Environment.ExpandEnvironmentVariables("%ProgramFiles%"), serverPath); 
      } 

      // location for MicrosoftWebDriver.exe 
      EdgeOptions options = new EdgeOptions(); 
      options.PageLoadStrategy = EdgePageLoadStrategy.Eager; 
      driver = new EdgeDriver(serverPath, options); 

      //Set page load timeout to 5 seconds 
      driver.Manage().Timeouts().SetPageLoadTimeout(TimeSpan.FromSeconds(5)); 

      //string _url = @"https://www.bing.com/"; 
      string _url = @"http://www.google.com"; 
      Console.WriteLine("_url=" + _url); 
      driver.Url = _url; 

     } 
     catch (Exception e) 
     { 
      Console.WriteLine(e.Message); 
     } 
     finally 
     { 
      if (driver != null) 
      { 
       driver.Close(); 
      } 
     } 
    } 
} 

}

ответ

1

После строки:

driver = new EdgeDriver (serverPath, options);

, вы должны увидеть открытое окно команд и подключиться к Edge. Если браузер Edge уже открыт, он закроет его и откроет новый экземпляр. Исходя из вашей ошибки, я не верю, что вы видите это поведение, я прав? Если это так, что-то может блокировать запуск WebDriver Server локально (Defender?). Проверьте условную установку serverPath. Я не смог заставить Is64BitOperatingSystem решить, поэтому я выбрал правильный путь и удалил оставшуюся часть условного выражения, установив serverPath в местоположение файла MicrosoftWebDriver.exe.

Если у вас неправильный путь, он не пройдет мимо экземпляра «драйвер». Как-то вы делаете это с вызовом driver.Url, я предполагаю, что вы получаете некоторое разрешение с этим serverPath. Возможно, что-то на локальном устройстве блокирует запуск MicrosoftWebDriver.exe.

Опять же, вы должны увидеть командную строку с отображением правильного ведения журнала сообщений.

Последний советник, вы можете зайти в MicrosoftWebDriver.exe и запустить его. Затем вы можете перейти к: http://dev.modern.ie/testdrive/demos/webdriver/ и «Отправить запрос» со значениями по умолчанию, которые должны быть созданы для сеанса. Вы увидите результаты, опубликованные на странице, а также просмотрите протоколирование сообщений в окне команд.

Обязательно перейдите на эту страницу из другого браузера, кроме Edge, так как он убьет существующие окна Edge, включая себя.

1

У меня есть немного понять, но не обходной путь или исправить, но ...

в моем случае, сервер веб-драйвер для IE конфликтующим с моего веб-сервера драйверов для края ... и я до сих пор у меня нет обходного пути ... У меня есть цикл тестов, которые запускаются в пяти разных браузерах.

Когда я попытался добавить кромку, она не сбежала бы, без сбоев. веб-драйвер в папке отладки (для базового пяти, включая IE) имени, является ИДЕНТИЧНЫм для того, который включен, когда я запускаю Edge.

Я не знаю, как исправить это и выполнить требования к тестированию ... YET. bro mak