Я использую 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? Спасибо.