关于 ElementClickInterceptedException(元素单击截获异常)问题

我碰上的3种情况以及解决方法 :

1.是由于网络问题,需要加上时间等待,如下代码

# 勾选第一个对比按钮
self.contrast.click_comparea_one()
time.sleep(1)

2.情况是因为元素被覆盖了,点击失败

方法一js注入:

element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')

driver.execute_script("arguments[0].click();", element)

方法二ActionChains,需要先导包:

导包代码如下:from selenium.webdriver import ActionChains

操作方法代码:

element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
 

3.是因为有滚动条,找不到位置,且被覆盖,需先滚动到定位元素位置,在进行操作,点击输入等情况,这种情况第二种方法是定位点击不了的:

# 选定下拉框,下拉至固定位置
# 设置JavaScript脚本控制滚动条(0:左边距;1000:上边距;单位像素)
js = "window.scrollTo(0,300)"
# selenium调用执行JavaScript脚本的方法
self.driver.execute_script(js)
# 勾选第三个对比按钮
self.contrast.click_comparea_three()
time.sleep(1)
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值