Selenium 无法点击的问题

之前爬取淘宝遇到过无法点击的问题,一直没解决,最近又遇到了,对微博进行爬取时,无法点击“更多热门微博”。

刚开始以为是iframe问题,在找了网页iframe后,发现网页中只有一个iframe,另一个是自动刷新的(下拉浏览器自动加载新微博),所以排除了iframe的问题,那么问题出在哪里呢

 
如下,热门微博按钮不能被点击。

报错是这个, is not clickable at point(….)

最后经过研究发现,那个按钮是被图层覆盖了,必须使用js命令点击,所以给点击命令由
button.click()
换成
browser.execute_script(‘argument[0].click();’, button)
即可成功点击。
另外还需要注意,由于selenium是模拟操作,做到可视即可爬,所以必须在代码中添加必要的等待,虽然有wait.until 这种方法可以保证加载出来,但是事实证明,依然要在前面加上等待,否则CSS选择器会报错(选不出来),代码中也多次用到在wait.until 前添加sleep。
 

分类: others

0 条评论

发表回复

Avatar placeholder

您的电子邮箱地址不会被公开。 必填项已用 * 标注