Python Chromedriver для взаимодействия с iframe - PullRequest
0 голосов
/ 29 апреля 2020

Я использую Python и Chromedriver, чтобы открыть внутреннюю страницу компании.

Когда страница загружена, на ней появляются «условия и положения». Это iframe, пользователь должен нажать кнопку «Согласен», чтобы закрыть его, прежде чем перейти к главной странице.

Я использовал Katalon Recorder для имитации нажатия. Он возвращает следующую строку:

driver.find_element_by_link_text("Agree").click()

Но когда я интегрировал его с безголовым драйвером Chrome, ошибка говорит, что он не может найти элемент.

В коде я уже переключаюсь на iframe до нажатия кнопки «Принять». Переключение на iframe выглядит нормально, потому что нет сообщения об ошибке.

Странно то, что я использовал ниже для прокрутки вниз до нижней части страницы (до перехода на iframe), но он не прокручивается:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight)")

Другой обходной путь, после загрузки главной страницы и появления всплывающего окна, я могу вручную (используя pyauto gui) переместить курсор за пределы всплывающего окна и сделать 1 клик. Iframe исчезнет.

Но если я использую ручное перемещение курсора, Chromedriver без головы не имеет смысла, потому что мне нужно держать его всегда поверх других windows (в противном случае ручное перемещение мыши и щелчок не отображаются на веб-странице).

Как мне справиться с этой проблемой? (извините, я не смог опубликовать пример и код, потому что это внутренняя страница компании)

В iframe xpath «Согласен» выглядит так:

/html/body/appcues/cue/div/div/a

С другой стороны , есть ли способ имитировать движение мыши и щелкнуть в Chrome самом драйвере вместо pyauto gui? Спасибо.

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