Подождите, пока пользователь отправит оповещение Selenium Chrome - PullRequest
0 голосов
/ 19 декабря 2018

Допустим, у нас есть некоторые предварительные данные, которые нужно получить от пользователя, прежде чем мы приступим к нашим задачам автоматизации.Я подумал, что самый простой подход - это отображать подсказку, запрашивающую информацию, однако я не могу найти решение, которое действительно могло бы ждать отправки оповещения.

driver.execute_script("window.problemDetails=prompt('Copy/Paste INC Notes')")
problemDetails = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.problemDetails")
WebDriverWait(driver, 30).until(EC.alert_is_present())

Я пробовал многов SO доступны различные опции, но все они, похоже, хотят автоматически принять ожидаемое оповещение, в то время как я создаю оповещение и жду, когда пользователь отправит его.

Некоторые концепции, которые я пробовал:

  • Инкапсуляция в функции и возвращение логического значения, определяющего, может ли WebDriveWait продолжаться.
  • Использование until_not вместо until.
  • Ожидание до тех пор, покаПервый интерактивный элемент активируется перед продолжением.

Все это вернулось с одинаковыми результатами.

DevTools listening on ws://127.0.0.1:59055/devtools/browser/916a2801-ec87-4cf7-afe7-685cecb96123
[21996:24172:1218/183104.917:ERROR:gpu_process_transport_factory.cc(980)] Lost UI shared context.
[21996:24172:1218/183107.343:ERROR:textfield.cc(1767)] NOT IMPLEMENTED
Traceback (most recent call last):
  File "tom.py", line 14, in <module>
    problemDetails = driver.execute_script("var win = this.browserbot.getUserWindow(); return win.problemDetails")
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 636, in execute_script
    'args': converted_args})['value']
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Python\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 241, in check_response
    raise exception_class(message, screen, stacktrace, alert_text)
selenium.common.exceptions.UnexpectedAlertPresentException: Alert Text: None
Message: unexpected alert open: {Alert text : Copy/Paste INC Notes}
  (Session info: chrome=xx.xxx.xxx.xxx)
  (Driver info: chromedriver=2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform=Windows NT 10.0.14393 x86_64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...