爬虫模拟点击报错elenium.common.exceptions.ElementClickInterceptedException:Message:element click intercepted

26 篇文章 0 订阅
12 篇文章 0 订阅
这篇博客讲述了在爬取政府企业招标信息网站时遇到的Selenium元素点击异常问题。作者通过分析报错信息了解到元素被其他元素遮挡导致无法点击。为了解决这个问题,尝试了两种方法:一是使用JavaScript执行点击操作,二是通过添加延迟时间让页面完全加载。这两种方法最终都成功解决了元素不可点击的异常。
摘要由CSDN通过智能技术生成

目录

一、背景

二、全部报错信息

三、报错代码

四、解决问题

        4.1、使用js点击

        4.2、等待加载


一、背景

        简单做个案例,爬取 政府企业招标信息网 中的一些信息。做到模拟鼠标点击哪一块,下一页的按钮已经定位到了,但是就是click时报错。

二、全部报错信息

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <a href="javascript:" onclick="page(2,15,'');">...</a> is not clickable at point (730, 873). Other element would receive the click: <body>...</body>
  (Session info: chrome=105.0.5195.54)

三、报错代码

from selenium import webdriver


if __name__ == '__main__':

    url = 'http://zb.yfb.qianlima.com/yfbsemsite/mesinfo/zbpglist'
    driver = webdriver.Chrome()
    driver.get(url)


    driver.find_element_by_link_text('下一页 »').click()

四、解决问题

        4.1、使用js点击

                说实话不明白为啥要这样才能点击成功。莫名其妙的就好像。 在下一页点击貌似还需要加上driver.execute_script("arguments[0].click();",page)

from selenium import webdriver


if __name__ == '__main__':

    url = 'http://zb.yfb.qianlima.com/yfbsemsite/mesinfo/zbpglist'
    driver = webdriver.Chrome()
    driver.get(url)


    page = driver.find_element_by_link_text('下一页 »')
    driver.execute_script("arguments[0].click();",page)

 

        4.2、等待加载

                主要是用time.sleep()来等待浏览器的加载。

from selenium import webdriver
import time

if __name__ == '__main__':

    url = 'http://zb.yfb.qianlima.com/yfbsemsite/mesinfo/zbpglist'
    driver = webdriver.Chrome()
    driver.get(url)

    
    time.sleep(3)
    driver.find_element_by_link_text('下一页 »').click()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>