我想點擊一個按鈕上顯示http://disqus.com/Python的硒按鈕點擊
的HTML上商榷線程更多的評論看起來像以下:
<div class="load-more" data-role="more" style=""> <a href="#" data-action="more-posts" class="btn load-more__button">Show more</a> </div>
我已經使用從XPATH嘗試按鈕如下:
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:
driver.switch_to.frame('myID')
然後按類名加載:
element = driver.find_element_by_class_name('load-more') element.click()
注意:當它被執行對click()
沒有工作的時候切換到一個特定的iFrame曾任職像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