нажав на кнопку сообщения с селеном - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь зарегистрироваться на mail.protonmail через селен, капчу, которую я попытаюсь решить с помощью ML.

Но я обнаружил, что трачу часы на то, что, как я думал, займет несколько минут.

После нажатия кнопки Создать учетную запись -

Сообщение, которое появляется

Я попытался просто найти его xpath / id, но, похоже, он его не нашел.

Он не обнаруживает новое окно / предупреждение, поэтому я сейчас немного безнадежен ...

Вот HTML-код, если он может вам помочь:

<button id="confirmModalBtn" autofocus="" class="pm_button primary modal-footer-button">Confirm</button>

И что я сделал:

web = webdriver.Chrome(executable_path=r"D:\geckodriver \chromedriver.exe")
web.get(r'https://mail.protonmail.com/create/new?language=en')
# filling the data and getting to message i posted above..
accept_ele = web.find_element_by_class_name('pm_button primary modal-footer-button') # doesnt work
accept_ele = web.find_element_by_xpath('/html/body/div[1]/form/div[2]/button[2]') # doesnt work

Ответы [ 2 ]

0 голосов
/ 08 октября 2019

Проблема заключалась в том, что я забыл переключиться обратно на рамку по умолчанию.

Никогда не забывайте переключаться обратно ..

0 голосов
/ 08 октября 2019

Вы можете попробовать вызвать WebDriverWait и использовать идентификатор кнопки, чтобы найти элемент здесь:

from selenium.webdriver.support import expected_conditions as EC

accept_ele = wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@id='confirmModalBtn']")))

Я перешел на веб-сайт, который вы разместили, и воспроизвел всплывающее окно, показанное на скриншоте. Я смог найти элемент, используя указанный выше XPath:

enter image description here

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