如何获取部分链接文本找到的元素的href?

时间:2012-09-16 09:00:24

标签: python selenium selenium-chromedriver

使用Selenium和Chrome驱动程序:

links = browser.find_elements_by_partial_link_text('##')匹配约160个链接。

如果我试试,

for link in links:
    print link.text

用它我得到所有链接的文本:

##1
##2
...
##160

链接是这样的:

<a href="1.html">##1</a>
<a href="2.html">##2</a>
...
<a href="160.html">##160</a>

如何获取所有找到的链接的href属性?

2 个答案:

答案 0 :(得分:62)

您只需要在找到的每个链接上调用get_attribute。所以以下内容应该有效:

links = browser.find_elements_by_partial_link_text('##')
for link in links:
    print link.get_attribute("href")

现在应该输出你需要的东西。

答案 1 :(得分:0)

An existing answer类似的问题似乎可能适用:

假设

  

你的HTML只包含那个标签,那么应该这样做:

String href = selenium.getAttribute("css=a@href");
  

您使用DefaultSelenium#getAttribute()方法并传入CSS定位器,@符号以及要获取的属性的名称。在这种情况下,您选择a并获取其@href

因此,如果链接包含“..blablabla ...”文本,那么您可以通过这种方式找到它:

selenium.getAttribute("css=a:contains('..blablabla...')@href");