Python、Selenium:如何单击 javascript:void(0) 元素

我在网页中有一个“onclick”元素,


<a href="javascript:void(0)" onclick=

    "toIndexHtml('3','http://xxxxxxxxxxx/trade','0')">

<i></i>

<span></span>

trade

</a>

它在网页中显示为一个按钮,我想点击它,我尝试使用以下代码搜索它:


driver.find_element_by_xpath("//a[contains(@onclick,'toIndexHtml')]").click()

WebDriverWait(driver, 20).until(

    EC.element_to_be_clickable((By.XPATH,"/html/body/div/ul/li[3]/a"))).click()

两个都不行,请指教有没有其他方法!提前致谢!


PS:我使用的是 Chrome WebDriver 和 Chrome v64。


梵蒂冈之花
浏览 151回答 1
1回答

函数式编程

您的第一个定位器看起来很完美,应该可以正常工作。理想情况下,要单击需要引发WebDriverWait 的元素element_to_be_clickable(),您可以使用以下任一定位器策略:使用CSS_SELECTOR:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a[onclick^='toIndexHtml']"))).click()使用XPATH:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[starts-with(@onclick,'toIndexHtml')]"))).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