【问题标题】:clicking on a link with the same href value using selenium python使用 selenium python 单击具有相同 href 值的链接
【发布时间】:2014-11-04 14:21:09
【问题描述】:

我有一个 html 代码,它有两个链接,但两个链接的 href 值相同,但 onclick 和文本不同。 我不确定如何访问第二个链接。 我尝试使用 driver.find_element_by_link_text('text'),但我得到一个 no such element found 错误。

<div id="member">
    <"a href="#" onclick="add_member("abc"); return false;">run abc<"/a> 
    <br>
    <"a href="#" onclick="add_member("def"); return false;">run def<"/a>
</div>

【问题讨论】:

    标签: python html selenium selenium-webdriver


    【解决方案1】:

    有多个选项可以获取所需的链接。

    一种选择是使用find_element_by_xpath() 并检查onclick 属性值:

    link = driver.find_element_by_xpath('//div[@id="member"]/a[contains(@onclick, "add_member(\"def\")")]')
    link.click()
    

    另一种方法是简单地找到两个链接并通过索引获取所需的链接:

    div = driver.find_element_by_id('member')
    links = div.find_elements_by_tag_name('a')
    links[1].click()
    

    选择哪个选项取决于整个 HTML 内容。希望两个建议的解决方案中至少有一个可以解决问题。

    【讨论】:

    • 说它不是一个有效的 xpath
    • 如果我使用第二个选项,我会得到“元素不可见异常”
    • @esua 你能分享到该网站的链接,以便我可以重现问题吗?谢谢。
    猜你喜欢
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 2018-02-08
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多