Как исправить «[ПРЕДУПРЕЖДЕНИЕ]: Превышено время соединения с Chrome, повторная попытка…» - PullRequest
2 голосов
/ 28 марта 2020
  • C#. NET Framework 4.8 Консольное приложение (32 бита)
  • Edge (хром) 80.0.361.69
  • msedgedriver.exe (64 бита, 80.0.316.69)
  • Windows 10 Home 64bit 1909 18363.720
  • Selenium.WebDriver 4.0.0-alpha05
static void Main()
{

    var edgeOptions = new EdgeOptions
    {
        UseChromium = true,
        BrowserVersion = "80.0.361.69",
        BinaryLocation = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
    };

    var service = EdgeDriverService.CreateDefaultServiceFromOptions(Directory.GetCurrentDirectory(), "msedgedriver.exe", edgeOptions);
    using IWebDriver driver = new EdgeDriver(service, edgeOptions)
    {
        Url = "https://www.naver.com"
    };
    Console.ReadLine();
    //While the program is paused, I opened a new window manually and pressed enter on the console

    driver.SwitchTo().Window(driver.WindowHandles[1]); // this takes 30ms
    //After calling driver.SwitchTo().Window(), 
    //a message [1585376776.256][WARNING]: Timed out connecting to Chrome, retrying... appears on the console.

    var elements = driver.FindElements(By.Id("whatever")); //this takes 4030ms

}

Выше указаны Мои окружения и код
Когда Я запускаю свою программу,

Starting MSEdgeDriver 80.0.361.69 (11b2f9c770113c9712ab7dffaca9ea3596d0deb3) on port 13626
Only local connections are allowed.
Please protect ports used by MSEdgeDriver and related test frameworks to prevent access by malicious code.

DevTools listening on ws://127.0.0.1:13630/devtools/browser/6820c242-c3b6-43c1-9e19-98742a95cc18
[1585376743.252][WARNING]: Timed out connecting to Chrome, retrying...
[1585376745.407][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376745.509][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376745.610][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376745.711][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376745.873][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376745.974][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376746.075][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376746.179][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376746.659][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376746.800][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376746.961][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376747.187][SEVERE]: Timed out receiving message from renderer: 0.100
[1585376747.521][SEVERE]: Timed out receiving message from renderer: 0.100

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

[1585376776.256][WARNING]: Timed out connecting to Chrome, retrying... 

появляется на консоли. это появляется снова, и следующий первый драйвер. Вызов FindElements () всегда занимает около 4 секунд.
Я проверял эту проблему с chrome, но результат был таким же.
Я много гуглил, но не мог Не могу найти подходящий ответ.
Как мне решить эту проблему?

1 Ответ

1 голос
/ 30 марта 2020

Всякий раз, когда вы загружаете какую-либо страницу с помощью драйвера селена, сценарий драйвера ожидает, пока страница полностью загрузится. Но иногда веб-драйверу требуется от 3 до 4 минут для загрузки страницы, в этом случае вы увидите исключение TimeoutException в вашей консоли.

Когда загрузка страницы занимает слишком много времени и вам нужно прекратить загрузку дополнительных субресурсов (изображений, * 1017) *, js et c) вы можете изменить pageLoadStrategy через веб-драйвер.

По умолчанию, когда Selenium загружает страницу, она следует за normal pageLoadStrategy .

System.setProperty("webdriver.edge.driver","E:\\edgedriver.exe");

edgeOptions options = new EdgeOptions();
options.setPageLoadStrategy(PageLoadStrategy.NONE);

driver = new EdgeDriver(options);

Ссылка:

Истекло время получения сообщения от средства визуализации в селене

...