繁体   English   中英

Python Selenium按钮单击

[英]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

https://stackoverflow.com/a/38723782/3537915

https://stackoverflow.com/a/38744577/3537915

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM