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

不断收到unable to locate element错误消息。


xpath 的第一个查找元素很好,但第二个让我很难过。


这是我的代码:


import XLUtils

from selenium import webdriver


driver=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()


红糖糍粑
浏览 532回答 2
2回答

蛊毒传说

您需要稍等片刻,Next按钮才会出现。from selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitwait = WebDriverWait(driver, 10)e = wait.until(    EC.presence_of_element_located((By.XPATH, '//*[@id="welcome_button_next"]'))    )e.click()

慕婉清6462132

要单击文本为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 WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as EC
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python