snoopy55
@snoopy55

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

.find_element_by_link_textが機能しない

解決したいこと

.find_element_by_link_textで取得したlink_textをクリックしたいです。
具体的には、競馬の投票サイト(以下写真)の「1番 レオビヨンド 単勝オッズ3.5倍」をクリックして次の画面に遷移したいです。
image.png
image.png

発生している問題・エラー

Message: no such element: Unable to locate element: {"method":"link text","selector":"1レオビヨンド   3.5"}
  (Session info: chrome=89.0.4389.114)

該当するソースコード

link_text = browser.find_element_by_link_text('1レオビヨンド   3.5')

自分で試したこと

Nameが「1レオビヨンド   3.5」と表示されているので、.find_element_by_link_textでlink_textを取得できると考えていますが、うまくいきません。
他の馬(2番ブライトアイズ、3番コラルブラッシュ)も同じようなエラーが出ます。

一方、画面左上の「式別」ボタンは、.find_element_by_link_textでlink_textを取得できます。

link_text = browser.find_element_by_link_text('式別')
link_text
<selenium.webdriver.remote.webelement.WebElement (session="18f32d3e6905b535219bcce5b71a1f12", element="601c8a30-227a-4e67-856a-b2d62753bf4d")>

image.png

0

1Answer

find_element_by_link_textは完全一致で取得するようなので、上手く行かないんじゃないでしょうか。

find_element_by_partial_link_textは部分一致で取得するようなので、それを試してはいかがでしょうか。

link_text = browser.find_element_by_partial_link_text('レオビヨンド')

2Like

Comments

  1. @snoopy55

    Questioner

    ありがとうございます!
    こちらで解決しました!
    partialという部分一致の方法を理解しました。

Your answer might help someone💌