首页新闻找找看学习计划

python selenium 如何获取网页页面所有可以点击的元素?

0
悬赏园豆:30 [已解决问题] 解决于 2018-09-27 15:14

如果selenium 满足不了,那有什么方法可以获取页面上所有可以点击的元素,比如说:广告 、导航、也就是说只要这个页面可以点击的,我都要获取到,我应该如何操作或者有没有什么学习文档。有大佬可以指点下吗 ?感谢!!!

问题补充:

就比如说 百度首页 所有可以点击的元素

wow2828的主页 wow2828 | 初学一级 | 园豆:156
提问于:2018-09-26 10:53
< >
分享
最佳答案
0

基本上所有html元素都是可以点击的。你也可以判断当前元素是否有绑定click事件。

收获园豆:30
czd890 | 大侠五级 |园豆:7028 | 2018-09-26 11:14

如何操作 可以麻烦给个案例吗 我想操作百度首页所有可以点击的按钮 并记录结果 我想到的一种比较笨的方法就是 我用selenium获取到所有的div然后在获取div下面所有的元素 如果有的话就一直获取到孙孙孙直到没有然后 在一个一个的点击 但是这个时候我有点懵 这样操作的话还有个问题就是 如果获取点击事件后的结果 我也想把这个结果存储起来

wow2828 | 园豆:156 (初学一级) | 2018-09-26 11:18

@wow2828: 回到问题的本身,你要识别点击元素做什么,要实现什么功能?

czd890 | 园豆:7028 (大侠五级) | 2018-09-26 14:42

@czd890: 我发私信给你了 不知道我表达的清不清楚

wow2828 | 园豆:156 (初学一级) | 2018-09-26 14:57

@wow2828:
1.触发所有元素的click事件,如你所说用递归
2.注册事件通知,beforeNavigateTo 记录所有http nav地址到数据库,状态,关系等
http://www.seleniumeasy.com/selenium-tutorials/webdriver-event-listener-example
3.设法stop当前页面的nav行为。
https://stackoverflow.com/questions/33675969/stop-page-load-during-navigate-url-in-selenium
https://sqa.stackexchange.com/questions/5663/is-it-possible-to-stop-page-loading-on-the-browser-using-selenium-web-driver
https://stackoverflow.com/questions/5453423/how-to-stop-the-page-loading-in-firefox-programmatically
4.重复上述行为
5.数据库标记http nav地址是否已执行过
类似于页面爬虫做抓取,所有页面所有链接,所有nav执行完成后。就知道那些nav,或者click产生的nav是不是死链了

czd890 | 园豆:7028 (大侠五级) | 2018-09-26 17:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册