UnhandledAlertException, несмотря на отклонение предупреждений в Selenium / Chrome - PullRequest
0 голосов
/ 15 октября 2018

Я использую Selenium с Chromedriver в C #:

<packages>
  <package id="Selenium.Chrome.WebDriver" version="2.42" targetFramework="net461" />
  <package id="Selenium.WebDriver" version="3.14.0" targetFramework="net461" />
</packages>

При открытии веб-страниц, содержащих предупреждения, я всегда получаю исключение:

unexpected alert open: {Alert text : muh}
  (Session info: chrome=69.0.3497.100)
  (Driver info: chromedriver=2.42.591088 (7b2b2dca23cca0862f674758c9a3933e685c27d5),platform=Windows NT 10.0.17134 x86_64)

Пример кода:

static void Main(string[] args) {

            ChromeOptions options = new ChromeOptions();
            options.UnhandledPromptBehavior = UnhandledPromptBehavior.Dismiss;

            using (var browser = new ChromeDriver(options)) {
                browser.Navigate().GoToUrl(@"D:\downloads\test.html");
                Console.WriteLine(browser.PageSource); //Exception happens here
            }

            Console.WriteLine("done");
            Console.ReadLine();
}

Пример HTML:

<!doctype html>
<html>
<head>
</head>
<body>
<script>
alert("muh");
document.write("<p>blah</p>");
</script>
</body>
</html>

Похоже, options.UnhandledPromptBehavior = UnhandledPromptBehavior.Dismiss просто не имеет никакого значения.Что я должен сделать, чтобы предотвратить это исключение?

1 Ответ

0 голосов
/ 15 октября 2018

Попробуйте решить с помощью try / catch:

try
{
  Console.WriteLine(browser.PageSource); //Exception happens here
}
catch (UnhandledAlertException unhandledAlertException)
{
   // ignore exception or put the rest of the code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...