在python硒中找不到链接元素

时间:2020-07-01 08:04:06

标签: python selenium xpath css-selectors webdriverwait

我在python中使用硒驱动程序。 我试图找到并单击位于下拉菜单内的链接Web元素。 我使用ActionChains单击并展开下拉菜单,它可以正常工作。 但是我找不到链接元素并单击它。单击后将触发邮件。 我已经使用了所有的find_element_by方法,但是没有用。

html code

我到目前为止使用的代码。导致找不到元素的错误。

optionsmenu = driver.find_element_by_xpath('/html/body/div[3]/div[3]/div/div[2]/div[1]/div[3]/div[3]/table/tbody/tr/td[5]/a')
 

actions = ActionChains(driver)
actions.move_to_element(optionsmenu)
actions.click()
actions.perform()

print ('Options menu clicked')

driver.find_element_by_xpath('//*[@id="userOptionsMenu"]/td/ul/li[5]/a/span[2]').click()

1 个答案:

答案 0 :(得分:1)

所需元素是React元素,因此单击该元素必须为element_to_be_clickable()引出WebDriverWait,并且可以使用以下Locator Strategies之一:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li.icon.Email > a span[data-bind$='resendWelcomeEmail']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@class='icon Email']/a//span[contains(@data-bind, 'resendWelcomeEmail')]"))).click()
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC