Selenium - страница никогда не доступна даже на "Eager" - PullRequest
0 голосов
/ 11 июля 2020

Обратите внимание, что я новичок, и это мой первый вопрос на этом сайте ... так что заранее извиняюсь, если это неправильно сформулировано.

Я кодирую C# с Selenium с IE 11 webDriver.

У меня проблема, когда я всегда получаю исключение при загрузке страницы на нескольких страницах, включая домашнюю страницу Google (даже при ожидании 2 полных минуты).

Что я пытался решить эти ошибки:

  • Изменен PageLoadStrategy на «Eager». Кажется, что страница загружается, но я все еще получаю исключения при загрузке страницы, потому что задержка слишком велика.
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium;

            InternetExplorerOptions IEoptions = new InternetExplorerOptions();
            IEoptions.PageLoadStrategy = PageLoadStrategy.Eager;
            webdriver = new InternetExplorerDriver(IEoptions);

            webdriver.Navigate().GoToUrl("http://google.ca"); 
            //This Line returns the error
  • Изменен PageLoadStrategy на «None». Это позволяет go перейти к следующей команде в потоке, но веб-драйвер, похоже, не может получить доступ к чему-либо в DOM. Что бы я ни пытался, я всегда получаю исключение webdriver «С нулевым ответом». Я даже попытался отделить код для PageLoad от кода для «FindElement» двумя разными кнопками, чтобы убедиться, что я могу дать достаточно времени для загрузки страницы ... все равно получаю то же исключение.
using OpenQA.Selenium.IE;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium;

private void LoadPage()
{
            InternetExplorerOptions IEoptions = new InternetExplorerOptions();
            IEoptions.PageLoadStrategy = PageLoadStrategy.None;
            webdriver = new InternetExplorerDriver(IEoptions);

            webdriver.Navigate().GoToUrl("http://google.ca"); 

}

private void GetElementPosition()
{
           debug.print(webdriver.FindElement(By.Id("gsr")).Location.ToString());   
           //this line returns the error
}

Версия Selenium: 4.0.0

Версия IEwebdriver: 3.150.1.1

1 Ответ

0 голосов
/ 13 июля 2020

Я нашел ответ в другом посте. Моя проблема на самом деле была вызвана защищенным режимом IE.

Решение заключалось в том, чтобы изменить параметры IE вручную или изменить параметры IE на «IntroduceInstabilityByIgnoringProtectedModeSettings» (когда первое решение невозможно ).

Ссылка на исходный вопрос: Webdriver отключить расширенный защищенный режим

...