selenium点击span(div) 节点

在使用Selenium爬取知乎收藏夹内容时,由于HTML结构变化,原先的点击方法失效。作者发现元素变为不可点击的文字,通过分析错误信息,调整了点击元素的XPath。通过点击上一行的div节点而不是直接点击span,成功解决了ElementClickInterceptedException问题。
摘要由CSDN通过智能技术生成

背景

想用selenium来爬取知乎收藏夹的内容 ,但是不知道什么时候收藏夹的html代码发生了变化,以前画红线的部分是个button,所以直接click就行了。现在没有按钮了,是一段可以点击的缩略文字,如图1:
图1
所以就尝试点击上述的段落

问题及解决方式

用Chrome直接复制图1高亮部分的span节点的xpath(这个节点就是在段落上右键“检查”以后跳转到的节点), 这个xpath是//*[@id="root"]/div/main/div/div[1]/div[2]/div[2]/div[1]/div[1]/div/div/div/div[2]/span/div/div/span
执行WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, location))).click(),其中locatioin就是用chrome复制出来的这个节点的xpath
结果报错 selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="RichText ztext CopyrightRichText-richText css-4em6pe" options="[object Object]" itemprop="articleBody">...</span> is not clickable at point (796, 377). Other element would receive the click: <div class="css-79elbk">...</div> (Session info: chrome=107.0.5304.107)
注意到这一句Other element would receive the click: <div class="css-79elbk"因此就复制图1 高亮部分上一行的div节点的xpath了,然后这次程序就可以正常地点击这个段落了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值