我正在自动化一项功能,用户需要单击以下链接中突出显示的链接。
我尝试了 xpath 上的 contains ,即 //*[@id="lc"]
,以及来自 Here 的 onclick 选项。两者都不起作用,并且元素错误不存在错误。
我知道我位于正确的 iframe 中,因为当使用不包含的 xpath 时,脚本会毫无问题地单击第一个 xpath 链接。
最佳答案
要在所需元素上click()
,因为该元素是动态元素,您必须为元素引发WebDriverWait可点击,您可以使用以下任一 Locator Strategies :
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "td.EMROtherEpsEven>table tr>td.EMROtherEpsEven#lc[onclick*='Hemoglobin']"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[@class='EMROtherEpsEven']/table//tr/td[@class='EMROtherEpsEven' and @id='lc'][contains(@onclick, 'Hemoglobin')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
关于python - 如何通过 Selenium 和 Python 点击表中的 onclick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54188582/