元素反应触发算谁的(元素点击报错: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()直接从第一个元素遍历点击 ,一直点击到我想要点击的元素
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!