Не могу понять селен - не могу найти элемент - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь научиться щелкать, используя селен.Я пробовал несколько разных сайтов, таких как Reddit, Google и т. Д., Но безуспешно.

driver.get('https://www.dropbox.com/login')
driver.find_element_by_xpath('//a[@href="' + 'https://www.dropbox.com/forgot?email_from_login=' + '"]').click()

и

continue_link = driver.find_element_by_partial_link_text('Sign in')

Они оба существуют, но не работают.Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 17 апреля 2019

Вы немного конкретизируете свой xpath, так что есть еще много способов, которыми вы можете что-то исправить. Используя xpath, вы можете просто сделать:

driver.find_element_by_xpath("//*[@class='forgot-password-link']").click()

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

0 голосов
/ 17 апреля 2019

Вы можете использовать более короткий одиночный класс для выбора кнопки

.
driver.find_element_by_css_selector(".login-button").click()

Войти через Google

driver.find_element_by_css_selector(".sign-in-text").click()

За забытый пароль

driver.find_element_by_css_selector(".forgot-password-link").click()

Селекторы css одного класса будут самым быстрым методом (быстрее, чем xpath и составной класс)

0 голосов
/ 17 апреля 2019

Можете ли вы попробовать следующее:

from selenium.webdriver.common.by import By
driver.findElement(By.cssSelector(".login-button.signin-button.button-primary")).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...