[英]Python Selenium button click
我试图单击一个按钮以显示有关http://disqus.com/上的Discussionon主题的更多评论
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单击按钮的正确方法是什么?
更新:当我切换到特定的iFrame时工作:
driver.switch_to.frame('myID')
然后按类名加载:
element = driver.find_element_by_class_name('load-more') element.click()
注意:当在同一行上执行driver.find_element_by_class_name('load-more').click()
类的driver.find_element_by_class_name('load-more').click()
时, click()
不起作用
Xpath应该是找到元素的最后手段。 对于您的情况,我会尝试
driver.find_element_by_class_name("load-more__button"));
由于复合btn load-more__button
因此无法使用btn load-more__button
。
如果仍然无法使用,Id建议在Xpath之前使用CSS选择器。
但是,如果这些选项都不起作用,并且您的Xpath仍然不起作用,则应使用Firefox的Firebug附加组件来确保所使用的Xpath正确。
这是我的其他一些答案,可能会帮助您开始使用Firebug:
https://stackoverflow.com/a/38980488/3537915
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.