Необработанное исключение. openQA.Selenium.WebDriverException: новая команда сеанса вернула значение (‘Неизвестная ошибка’), которое не является допустимым объектом JSON

#c# #selenium #authentication #selenium-webdriver #microsoft-edge

#c# #selenium #аутентификация #selenium-webdriver #microsoft-edge

Вопрос:

Проблема

При попытке запустить приложение в интегрированной среде разработки (Jetbrains Rider) возникает ошибка:

 [15:14:06.969] - Listening on http://127.0.0.1:43237/ [15:14:06.969] - Listening on http://[::1]:43237/ Unhandled exception. OpenQA.Selenium.WebDriverException: The new session command returned a value ('Unknown error') that is not a valid JSON object.
 

Исходный код

     IWebDriver  driver = new EdgeDriver();
    driver.Navigate().GoToUrl("https://www.instagram.com");

    IWebElement usernameInput = driver.FindElement(By.CssSelector("input[name='username']"));
    IWebElement passwordInput = driver.FindElement(By.CssSelector("input[name='password']"));


    usernameInput.SendKeys("YourUsername");
    passwordInput.SendKeys("YourPassword");
 

Свойства используемых пакетов NuGet

Selenium.WebDriver.MSEdgeDriver — Version 87.0.669

Selenium.WebDriver — Version 4.0.0-alpha07

Ответ №1:

Какую версию браузера Edge вы используете? Вам нужно использовать ту же Selenium.WebDriver.MSEdgeDriver версию, что и версия браузера Edge. Например, я использую Edge 87.0.664.47, тогда мне нужно использовать Selenium.WebDriver.MSEdgeDriver — Version 87.0.664.47 .

Кроме того, вам нужно использовать эту строку в коде: edgeOptions.UseChromium = true .

Вы можете попробовать следующий код, он может хорошо работать на моей стороне:

 EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.UseChromium = true;
IWebDriver driver = new EdgeDriver(edgeOptions);
driver.Navigate().GoToUrl("https://www.instagram.com");
Thread.Sleep(3000);
IWebElement usernameInput = driver.FindElement(By.CssSelector("input[name='username']"));
IWebElement passwordInput = driver.FindElement(By.CssSelector("input[name='password']"));
usernameInput.SendKeys("YourUsername");
passwordInput.SendKeys("YourPassword");
Thread.Sleep(3000);
driver.Close();