我想点击一个按钮上显示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