为了账号安全,请及时绑定邮箱和手机立即绑定

通过Python使用find_element时Selenium找不到元素

通过Python使用find_element时Selenium找不到元素

红糖糍粑 2022-01-18 15:32:45
不断收到unable to locate element错误消息。xpath 的第一个查找元素很好,但第二个让我很难过。这是我的代码:import XLUtilsfrom selenium import webdriverdriver=webdriver.Chrome(executable_path="C:\Chrome_Driver\Chromedriver.exe")driver.get("https://www.canada.ca/en/revenue-agency/services/e-services/e-services-businesses/payroll-deductions-online-calculator.html")driver.find_element_by_xpath('/html/body/main/div[1]/div[7]/p/a[1]').click()driver.find_element_by_xpath('//*[@id="welcome_button_next"]').click()
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

您需要稍等片刻,Next按钮才会出现。


from selenium.webdriver.support import expected_conditions as EC

from selenium.webdriver.common.by import By

from selenium.webdriver.support.wait import WebDriverWait


wait = WebDriverWait(driver, 10)


e = wait.until(

    EC.presence_of_element_located((By.XPATH, '//*[@id="welcome_button_next"]'))

    )

e.click()


查看完整回答
反对 回复 2022-01-18
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

要单击文本为Next的元素,您需要诱导WebDriverWait以使元素可单击,您可以使用以下任一解决方案:


使用CSS_SELECTOR:


WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.btn.btn-primary#welcome_button_next"))).click()

使用XPATH:


WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='btn btn-primary' and @id="welcome_button_next"]"))).click()

注意:您必须添加以下导入:


from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.common.by import By

from selenium.webdriver.support import expected_conditions as EC


查看完整回答
反对 回复 2022-01-18
  • 2 回答
  • 0 关注
  • 531 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信