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

2024-06-09 15:04:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在网页中有一个“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()

两者都不起作用,请建议是否有其他方法!提前谢谢

注:我正在使用ChromeWebDriver和ChromeV64


Tags: http元素网页driverelementjavascript按钮click
1条回答
网友
1楼 · 发布于 2024-06-09 15:04:05

您的第一个定位器看起来很完美,应该可以正常工作

理想情况下,要单击元素,需要为element_to_be_clickable()诱导WebDriverWait,并且可以使用以下Locator Strategies之一:

  • 使用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 WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

相关问题 更多 >