使用selenium python单击具有相同href值的链接

时间:2014-09-10 19:44:26

标签: python html selenium selenium-webdriver

我有一个html代码,它有两个链接,但两个链接都有相同的href值,但是onclick和文本是不同的。 我不确定如何访问第二个链接。 我尝试使用driver.find_element_by_link_text(' text'),但是我发现没有找到这样的元素错误。

<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>

1 个答案:

答案 0 :(得分: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内容。希望至少有两个建议的解决方案能解决这个问题。