我在python中使用硒驱动程序。 我试图找到并单击位于下拉菜单内的链接Web元素。 我使用ActionChains单击并展开下拉菜单,它可以正常工作。 但是我找不到链接元素并单击它。单击后将触发邮件。 我已经使用了所有的find_element_by方法,但是没有用。
我到目前为止使用的代码。导致找不到元素的错误。
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()
答案 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