Я пытаюсь научиться щелкать, используя селен. Я пробовал несколько разных сайтов, таких как 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')
Они оба существуют, но не работают. Что я делаю неправильно?
Вы немного конкретизируете свой xpath, так что есть еще много способов, которыми вы можете что-то испортить. Используя xpath, вы можете просто сделать:
driver.find_element_by_xpath("//*[@class='forgot-password-link']").click()
Я не делаю никаких предположений, но на тот случай, если вы этого еще не сделали, в Chrome inspect element есть очень удобный инструмент, который позволяет щелкнуть элемент и перейти к его узлу в инспекторе.
Можете ли вы попробовать следующее:
from selenium.webdriver.common.by import By
driver.findElement(By.cssSelector(".login-button.signin-button.button-primary")).click()
Вы можете использовать более короткий одиночный селектор классов для кнопки Вход
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 и составной класс)