关于 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)

你可能感兴趣的:(测试工程师,定位,selenium)