2014-09-10 115 views
0

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

<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

有多种选项可以获得所需的链接。

一个办法是让使用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内容。希望两个建议的解决方案中的至少一个解决了这个问题。

+0

说它不是一个有效的xpath – esua 2014-09-10 20:05:28

+0

@esua肯定,是一个错字 - 请再次检查。 – alecxe 2014-09-10 20:05:58

+0

如果我使用第二个选项,我会得到“元素不可见的异常” – esua 2014-09-10 20:11:12