5

「このテキストのすべてのヒットを表示」というリンク テキストを含む Web ページ上のすべてのリンクをクリックしようとしています。Web ページの一部の html は次のようになります。

<a href="/searchCom.do?offset=24981670&entry=4&entries=112&area=Poetry&forward=textsCom&queryId=../session/1380145118_2069"><b>View all hits in this text</b>
<br>
</a>

[...]

<a href="/searchCom.do?offset=25280103&entry=5&entries=112&area=Poetry&forward=textsCom&queryId=../session/1380145118_2069"><b>View all hits in this text</b>
<br>
</a>

ページにそのようなリンクが 1 つしかない場合は、次のような方法でクリックできることがわかっています。

driver.find_element_by_link_text('View all hits in this text').click()

残念ながら、この方法では、「このテキストのすべてのヒットを表示」というリンク テキストを含む Web ページの最初のリンクを識別してクリックするだけです。そこで質問したいのですが、このページの「このテキストのすべてのヒットを表示」というリンク テキストを含む 2 番目 (または n 番目) のリンクをクリックするために使用できる方法はありますか? xpath を使用する必要があるかもしれないと感じていますが、スクリプトに xpath を実装する方法がよくわかりません。他の人が貸してくれるアドバイスをいただければ幸いです。

4

2 に答える 2

6

find_elements_by_link_text()ドキュメント)があります:

links = driver.find_elements_by_link_text('View all hits in this text')
for link in links:
    link.click()

また、xpath を使用して、指定したテキストを持つすべてのリンクを取得できます。

links = driver.find_elements_by_xpath("//a[text() = 'View all hits in this text']")
for link in links:
   link.click()

それが役立つことを願っています。

于 2013-09-25T22:07:31.653 に答える
2

以下のコードを試してください:

driver.find_elements_by_link_text('linktext')[1].click()
于 2016-01-24T11:46:17.427 に答える