web-dev-qa-db-ja.com

部分的なリンクテキストで見つかった要素のhrefを取得するにはどうすればよいですか?

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属性を取得するにはどうすればよいですか?

44

見つけたリンクのそれぞれでget_attributeを呼び出すだけです。したがって、次のように動作するはずです。

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

これで、必要なものが出力されるはずです。

69
Scott

既存の回答 同様の質問に当てはまるようです:

仮定する

hTMLはその1つのタグのみで構成されているため、次のようになります。

_String href = Selenium.getAttribute("css=a@href");
_

DefaultSelenium#getAttribute()メソッドを使用して、CSSロケーター、_@_シンボル、および取得する属性の名前を渡します。この場合、aを選択し、_@href_を取得します。

したがって、リンクに「..blablabla ...」というテキストが含まれている場合は、次のようにして見つけることができます。

_Selenium.getAttribute("css=a:contains('..blablabla...')@href");
_
1