selenium-元素已定位到但无法选中的解决方法

问题:元素定位唯一,但执行脚本时,提示报错:selenium.common.exceptions.ElementClickInterceptedException: Message: Element,简单来说,就是元素有覆盖,有重叠,点击不了

 

 解决方法:

1、查找页面是否有iframe框架,如果有,那么需要切换iframe,在框架里对元素进行操作

# 切换ifarme框架
newfarme01 = driver.find_element('xpath','//main[@class="ant-layout-content site-layout-background"]//iframe')
driver.switch_to.frame(newfarme01)

2、使用webdriver中鼠标操作ActionChains类,模拟鼠标悬停点击操作

 import ActionChains
element=driver.find_element('xpath','//span[text()="添加商品"]')
webdriver.ActionChains(driver).move_to_element(element).click(element).perform()#模拟鼠标悬停点击

3、使用webdriver中鼠标操作pyautoGui类,获取元素的X 和Y 坐标位置,实现对元素的操作

import pyautogui
element = driver.find_element('xpath','//span[text()="下一步"]')
rect=element.rect #获取元素坐标
#直接调取pyautogui的click的方法,传入x和y的坐标,由于获取的XY坐标是获取的元素的左顶点的位置,所以稍微加一下像素移动一下点击范围,这里添加的10和130
pyautogui.click(rect['x']+10,rect['y']+130)



posted @ 2023-01-20 10:02  米糕xxx  阅读(570)  评论(0)    收藏  举报