HTMLにdiscussonスレッド上でより多くのコメントを表示するためのボタンをクリックしようとしています
は次のようになります。私は、XPathからを使用してみましたが
<div class="load-more" data-role="more" style=""> <a href="#" data-action="more-posts" class="btn load-more__button">Show more</a> </div>
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver")
driver.get(url)
driver.find_element_by_xpath('''//*[@id="posts"]/div[3]/a''').click()
ただし、NoSuchElement例外が発生します。
このタイプのHTMLでボタンをクリックする適切な方法は何ですか?
UPDATE:勤務私は特定のiFrameに切り替え:
element = driver.find_element_by_class_name('load-more') element.click()
注:それは上の実行されたときclick()
が動作しなかったことを次にクラス名によってロード
driver.switch_to.frame('myID')
同じ行のようにdriver.find_element_by_class_name('load-more').click()
適切に// [テキスト('ですが)このリンクは 'iframe'の中に置くことができるので、' driver.switch_to_frame(iframe_id) 'の後にのみ処理することができます – Andersson
要素がクリック可能になるのを待つ必要があるのは、' eleme nt_to_be_clickable' – ettanany
Seleniumで要素を選択する方法をいくつか試してみることもあります。いくつかのページはある方法で別のものよりもうまく機能します。 'find_elements_by_class_name(" btn load-more__button ")'を試したことがありますか? – Lost