元素点击报错:element click intercepted

在进行某个弹窗的关闭操作时,报出了以下错误
在这里插入图片描述

在这里插入图片描述

element click intercepted — 元素点击被拦截
错误原因大概是因为这个按钮上面还有别的东西覆盖,所以点击不到


所以有两种方法:
方法1,调用ActionChains类模拟鼠标点击:
element = driver.find_element_by_css(‘div[class*=“loadingWhiteBox”]’)
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
方法2,使用js点击:
element = driver.find_element_by_css(‘div[class*=“loadingWhiteBox”]’)
driver.execute_script(“arguments[0].click();”, element)




我在进行对一个APP使用selenium造数据时,碰到了以下情况:
在这里插入图片描述
一级业务有10个选项,但是页面上只能展示3个选项,其他选项需要上滑才能选择:

# 选择一级业务
driver.find_element(By.XPATH,'/html/body/div/div/div[2]/div/div[1]/form/div[1]/div[2]/div[2]/div/div/input').click()
choose1 = driver.find_elements(By.XPATH,'/html/body/div/div/div[5]/div/div[2]/div[1]/ul/li')
choose1[random.randint(0,len(choose1))].click()
driver.find_element(By.XPATH,'/html/body/div/div/div[5]/div/div[1]/button[2]').click()

这里随机选择前3个选项时不会报错,但是随机选择到后面的选项时就会报错,报错信息是元素不可点击,原因是选项在最后面,没有在页面上展示,所以点击不到,然后就用了以下方法解决:

# 选择一级业务
driver.find_element(By.XPATH,'/html/body/div/div/div[2]/div/div[1]/form/div[1]/div[2]/div[2]/div/div/input').click()
choose1 = driver.find_elements(By.XPATH,'/html/body/div/div/div[5]/div/div[2]/div[1]/ul/li')
a = int(random.randint(0,len(choose1)))
for i in range(a):
    choose1[i].click()
driver.find_element(By.XPATH,'/html/body/div/div/div[5]/div/div[1]/button[2]').click()

直接从第一个元素遍历点击,一直点击到我想要点击的元素

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值