Не могу понять селен - не могу найти элемент

1

Я пытаюсь научиться щелкать, используя селен. Я пробовал несколько разных сайтов, таких как 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')

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

  • 0
    Вы можете использовать любой из способов, таких как: driver.find_element_by_xpath ("// * [содержит (text (), 'Забыли пароль')]"). Click ()
Теги:
selenium

3 ответа

0
Лучший ответ

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

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

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

  • 0
    Да, я пытаюсь с инспектором. Я получил ту же ошибку, используя ваш код, к сожалению, 'Сообщение: нет такого элемента: Невозможно найти элемент: {"method": "xpath", "selector": "Forgot-Password-Link // * [@ class =' ' ] "} (Информация о сеансе: chrome = 73.0.3683.103) '
  • 0
    Извините - тот, который вы использовали, был до моего редактирования. Попробуйте с этим, пожалуйста, я поместил текст в неправильную часть цитат!
Показать ещё 2 комментария
0

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

from selenium.webdriver.common.by import By
driver.findElement(By.cssSelector(".login-button.signin-button.button-primary")).click()
  • 0
    Ну, по крайней мере, это было найдено. Это не сработало: «Составные имена классов не разрешены».
  • 1
    Почему ОП (или кто-либо еще) должен просто «попробовать» это? Похоже, вы не уверены, что решение сработает. Кроме того, вы отвечаете не только на ФП, но и на будущих читателей, поэтому, пожалуйста, уточните, почему это должно сработать; либо в тексте вокруг кода, либо в комментариях внутри кода.
0

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

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 и составной класс)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню