私はpythonセレンを使用してこのhtml linkの中で 'Click Me Please'というテキストを選択してクリックしたいと思います。python seleniumを使って一意の識別子を持たないhtmlページのリスト内にあるテキストをクリックする方法は?
問題は、アイテムに固有の識別子がなく、リスト内にあることです。
特定のHTMLコードは次のようになります。
試み1
driver.get("http://stackoverflowtest.site44.com/")
driver.find_element_by_link_text("Click Me Please").click()
#>>Message: u'no such element: Unable to locate element: {"method":"link text","selector":"Click Me Please"}\n (Session info: chrome=55.0.2883.95)\n (Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.11.6 x86_64)'
試み2
driver.get("http://stackoverflowtest.site44.com/")
driver.find_element_by_link_text("<!-- react-text: 496 -->Click Me Please<!-- /react-text -->").click()
#>>Message: u'no such element: Unable to locate element: {"method":"link text","selector":"<!-- react-text: 496 -->Click Me Please<!-- /react-text -->"}\n (Session info: chrome=55.0.2883.95)\n (Driver info: chromedriver=2.24.417412 (ac882d3ce7c0d99292439bf3405780058fcca0a6),platform=Mac OS X 10.11.6 x86_64)'
:ノー成功を収めて、次の方法を試してみた
<li class="tile no-tile-status both price-suggestion-high"> <div class="date"> <span class="day-number"> <!-- react-text: 496 -->Click Me Please<!-- /react-text --> </span> </div> <div class="price"><span> $529 </span></div> <div class="price-suggestion-highlight"></div> </li>
いいえTE:私はまた、次のHTML要素として、リスト内の他の日付をクリックすることができるようにしたい:
<li class="tile no-tile-status both price-suggestion-high"> <div class="date"><span class="day-number"><!-- react-text: 511 -->18<!-- /react-text --></span></div> <div class="price"><span>$533</span></div> <div class="price-suggestion-highlight"></div> </li>
<li class="tile no-tile-status both price-suggestion-high"> <div class="date"><span class="day-number"><!-- react-text: 525 -->20<!-- /react-text --></span></div> <div class="price"><span>$569</span></div> <div class="price-suggestion-highlight"></div> </li>
アイテムがリストにあるので、私は 'a'タグ名を 'li'に置き換えてあなたの提案を変更しましたが、これはうまくいかないようです:driver.find_element_by_xpath( 'li [text()= "Click Me Please"] ')。 'a'タグはリストの他の項目には存在しないので、 'a'タグは使用できません。 – Chris