62

我使用 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找到的所有链接的属性?

4

2 回答 2

93

调用get_attribute您找到的每个链接:

links = browser.find_elements_by_partial_link_text('##')
for link in links:
    print(link.get_attribute("href"))
于 2012-09-17T12:32:43.407 回答
2

对类似问题的现有答案似乎可能适用:

认为

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

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

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

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

selenium.getAttribute("css=a:contains('..blablabla...')@href");
于 2012-09-16T10:18:59.703 回答