【问题标题】:How to click javascript:void(0) link with selenium?如何单击 javascript:void(0) 与 selenium 的链接?
【发布时间】:2019-01-19 17:50:19
【问题描述】:

我正在使用 selenium 和 chrome 通过 python 自动点击页面。

我卡住了,无法点击以下 href 链接:

<a href="javascript:void(0)" class="addSuppData-trigger pts" data-target="edit_3-1" style="padding-right:6px;float:right;">
            <i class="material-icons black-text tiny-small">edit</i></a>

我尝试过使用 xpath、css 和 linktext 都无济于事。

示例代码:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="row-group-1"]/td[1]/div/div[2]/a/i' ))).click()

目标是单击笔,然后从下拉列表中选择项目。 screen shot of button

第二个高亮线是笔。 html tree

【问题讨论】:

    标签: python selenium xpath css-selectors webdriverwait


    【解决方案1】:

    该元素似乎是一个 dynamic 元素,要单击它,您需要诱导 WebDriverWait 以使所需的 元素可单击 和您可以使用以下任一解决方案:

    • 使用CSS_SELECTOR

      WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.addSuppData-trigger.pts[data-target^='edit_']>i.material-icons.black-text.tiny-small"))).click()
      
    • 使用XPATH

      WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[@class='addSuppData-trigger pts' and starts-with(@data-target, 'edit_')]/i[@class='material-icons black-text tiny-small' and contains(., 'edit')]"))).click()
      
    • 注意:您必须添加以下导入:

      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support import expected_conditions as EC
      

    【讨论】:

    • 谢谢,尽管我遇到了超时异常。
    猜你喜欢
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    相关资源
    最近更新 更多