Веб-драйвер и всплывающие окна в HtmlUnitDriver - PullRequest
4 голосов
/ 12 января 2012

В настоящее время я пытаюсь выполнить всплывающее окно JavaScript, используя HtmlUnitDriver веб-драйвера, и это дает странный результат.

Та же строка кода работает нормально, используя FirefoxDriver, однако, когда она переключается на HtmlUnitDriver, она перестает работать. Простой код, который я использую, находится здесь:

Alert alert = driver.switchTo().alert();
alert.accept();

Может ли HtmlUnitDriver обрабатывать всплывающие окна Java или это ограничение HtmlUnitDriver.

это всплывающее окно подтверждения Javascript. Мы попытались использовать свойства firefox с HTMLUnitDriver, выполнив:

driver = new HtmlUnitDriver(BrowserVersion.FIREFOX_3); 

Это было неудачно.

Дополнительный вопрос: должен ли JavaScript быть включен для HTMLUnitDriver, чтобы мы могли взаимодействовать с всплывающим окном подтверждения? Если ДА, кто-нибудь знает, как мы можем включить это?

driver = new HtmlUnitDriver(capabilities);

не работает и не распознается.

Любая помощь будет принята с благодарностью. Приветствия

1 Ответ

4 голосов
/ 29 ноября 2012

Похоже, что это длительная проблема https://code.google.com/p/selenium/issues/detail?id=1105

Я использовал обходной путь JavaScript для всплывающего окна подтверждения. Вот пример в Python:

self.driver = WebDriver(
    command_executor='http://localhost:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.HTMLUNIT)

self.driver.execute_script("window.confirm = function(msg) {return true;};")
self.find_element_by_id('mybutton').click()

Переопределите функцию verify () перед использованием и сделайте так, чтобы она возвращала true для Accept. Затем вы запускаете событие клика. Измените его на false для отмены.

Довольно аккуратно. Я нашел это где-то еще в StackOverflow, но не могу вспомнить, где.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...