【问题标题】:Python, Selenium: how to click on javascript:void(0) elementPython,Selenium:如何点击 javascript:void(0) 元素
【发布时间】:2020-11-24 05:53:36
【问题描述】:

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

两者都不行,如果有其他方法请建议!提前致谢!

P.S.:我正在使用 Chrome WebDriver 和 Chrome v64。

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

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

    理想情况下,点击您需要为WebDriverWait 诱导element_to_be_clickable() 的元素,您可以使用以下任一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
      

    【讨论】:

    • 谢谢!刚刚发现我的元素在一个 iframe 中,我需要在找到它之前切换到该框架:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2021-02-27
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多