Как правильно настроить edgedriver? получить следующую ошибку

Я использую NUnit и Selenium в C# для создания фреймворка, который содержит запуск нескольких тестовых случаев в нескольких браузерах. Microsoft Edge также поддерживается в этом случае. Когда я настраиваю свои тесты, chrome и firefox работают правильно, но edge выдает следующую ошибку:

OpenQA.Selenium.WebDriverException: было сгенерировано исключение с нулевым ответом при отправке HTTP-запроса на удаленный сервер WebDriver для URL http://localhost:55992/session. Состояние исключения было ReceiveFailure, и сообщение было: Основное соединение было закрыто: При получении произошла непредвиденная ошибка. ----> System.Net.WebException: базовое соединение было закрыто: при получении произошла непредвиденная ошибка. ----> System.IO.IOException: невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. ----> System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом [2018. 06. 17. 17:08:22 Предупреждение] в OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) в OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(commandToExExeecSecutorSecueSecutorSecutorSecutorSececSecutorSecutorSececSecutorSecutorSecutorSecutorSecutor улла) для службы поддержки. Команда commandToExecute) в OpenQA.Selenium.Remote.RemoteWebDriver.Execute(строковый драйвер CommandToExecute, параметры Dictionary`2) в OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities wantedCapabilities.emoteririom.Recutor.Rec., ICapabilities requiredCapabilities) в OpenQA.Selenium.Edge.EdgeDriver..ctor(параметры EdgeOptions) в OpenQA.Selenium.Edge.EdgeDriver..ctor() в SeleniumNUnit.Tests.WebDriverFactory.EdgeDriver() в C:\SeleniumNU SeleniumNUnit.Tests\Class1.cs: строка 70 в SeleniumNUnit.Tests.WebDriverFactory.WebDriver(тип BrowserType) в C:\SeleniumNUnit - Копировать \SeleniumNUnit.Tests\Class1.cs: строка 50 в SeleniumNUory.Fitory.Fri (Тип BrowserType) в C:\SeleniumNUnit - Copy\SeleniumNUnit.Tests\Class1.cs: строка 24 в SeleniumNUnit.DemoTest..ctor(браузер BrowserType) в C:\SeleniumNUnit - Копировать \SeleniumNUnit\Class1.cs: строка 12 --WebException в System.Net.HttpWebRequest.GetResponse() в OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) --IOException в System.Net.Sockets.NetworkStream.Read size, размер буфера [32] (байт]) в System.Net.PooledStream.Read (буфер Byte[], смещение Int32, размер Int32) в System.Net.Connection.SyncRead(запрос HttpWebRequest, логический userRetrievedStream, логический probeRead) --SocketException в System.Net.Sockets.Socket.Receive(буфер Byte[], смещение Int32, размер Int32, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read(буфер Byte[], смещение Int32, размер Int32)

Я попытался найти эту конкретную ошибку, и самое близкое, что я получил, было то, что удаленный драйвер пытается отправить HTTP-запрос, который в этом случае не удается. Поскольку Chrome и FF работают правильно, я понятия не имею, что не так с Edge.

WebDriverFactory:

using NUnit.Framework;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
using OpenQA.Selenium.IE;
using WebDriverManager;
using WebDriverManager.DriverConfigs.Impl;
using System.IO;
using OpenQA.Selenium.Edge;
using System;

namespace SeleniumNUnit.Tests
{
    /// <summary>
    /// A static factory object for creating WebDriver instances
    /// </summary>
    public class WebDriverFactory
    {
        public static string path = "C:\\Drivers\\";
        public IWebDriver Driver;

    protected WebDriverFactory(BrowserType type)
    {
        Driver = WebDriver(type);
    }

    [OneTimeTearDown]
    public void TestFixtureTearnDown()
    {
        Driver.Quit();
    }

    /// <summary>
    /// Types of browser available for proxy examples.
    /// </summary>
    public enum BrowserType
    {
        IE,
        Chrome,
        Firefox,
    }

    public static IWebDriver WebDriver(BrowserType type)
    {
        IWebDriver driver = null;

        switch (type)
        {
            case BrowserType.IE:
                driver = EdgeDriver();
                break;
            case BrowserType.Firefox:
                driver = FirefoxDriver();
                break;
            case BrowserType.Chrome:
                driver = ChromeDriver();
                break;
        }

        return driver;
    }

    /// <summary>
    /// Creates Internet Explorer Driver instance.
    /// </summary>
    /// <returns>A new instance of IEDriverServer</returns>
    private static IWebDriver EdgeDriver()
    {
        new DriverManager().SetUpDriver("https://download.microsoft.com/download/F/8/A/F8AF50AB-3C3A-4BC4-8773-DC27B32988DD/MicrosoftWebDriver.exe", Path.Combine(path, "MicrosoftWebDriver.exe"), "MicrosoftWebDriver.exe");
        IWebDriver driver = new EdgeDriver();   
        return driver;
    }

    /// <summary>
    /// Creates Firefox Driver instance.
    /// </summary>
    /// <returns>A new instance of Firefox Driver</returns>
    private static IWebDriver FirefoxDriver()
    {
        new DriverManager().SetUpDriver(new FirefoxConfig());
        FirefoxOptions options = new FirefoxOptions();
        IWebDriver driver = new FirefoxDriver(options);
        return driver;
    }


    /// <summary>
    /// Creates Chrome Driver instance.
    /// </summary>
    /// <returns>A new instance of Chrome Driver</returns>
    private static IWebDriver ChromeDriver()
    {
        new DriverManager().SetUpDriver("https://chromedriver.storage.googleapis.com/2.40/chromedriver_win32.zip", Path.Combine(path, "chromedriver.exe"), "chromedriver.exe");
        ChromeOptions chromeOptions = new ChromeOptions();
        IWebDriver driver = new ChromeDriver(chromeOptions);
        return driver;
    }


}
}

TestCode:

using System;
using NUnit.Framework;
namespace SeleniumNUnit
{
    [TestFixture(SeleniumNUnit.Tests.WebDriverFactory.BrowserType.Chrome)]
    [TestFixture(SeleniumNUnit.Tests.WebDriverFactory.BrowserType.Firefox)]
    [TestFixture(SeleniumNUnit.Tests.WebDriverFactory.BrowserType.IE)]
    public class DemoTest : SeleniumNUnit.Tests.WebDriverFactory
    {
        public DemoTest(SeleniumNUnit.Tests.WebDriverFactory.BrowserType browser)
        : base(browser)
    {

    }

    [OneTimeSetUp]
    public void SetUpEnvironment()
    {
        Driver.Navigate().GoToUrl("http://google.com");

    }

    [Test]
    public void validateTitle()
    {
        Assert.That(Driver.Title.Contains("Google"));
    }

    [OneTimeTearDown]
    public void tearDown()
    {
        Driver.Quit();
        Driver.Dispose();
    }
}
}

1 ответ

Я столкнулся с той же проблемой, но потом я нашел это:

Selenium.WebDriver.MicrosoftDriver v17.17134.0 сбой при запуске теста

Короче говоря, проверьте свою версию для Windows. Если это версия 17134, то получите версию MicrosoftWebDriver 17134. Однако, если вы используете 16299.xxx, вам придется использовать 16299 версию MicrosoftWebDriver.

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