目录
一、背景
简单做个案例,爬取 政府企业招标信息网 中的一些信息。做到模拟鼠标点击哪一块,下一页的按钮已经定位到了,但是就是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()