selenium报错:Message: element not interactable

问题描述:页面元素使用的是xpath定位方法,也获取到对应元素,但是在执行自动化时候还是会报:Message: element not interactable
1.这个时候就要考虑使用driver.execute_script() 的方法:
https://blog.youkuaiyun.com/weixin_46190208/article/details/139677569?spm=1001.2014.3001.5501
具体实例代码如下:

#以下是选择框的操作方式
chglr_input = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '定位元素的信息')))
#让选项弹出
driver.execute_script("$(arguments[0]).click()",chglr_input)
#接着写入对应选择框内容标签
element_with_text = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//li[@data-v-3de414e2='']//span[contains(text(), '选择框1')]")))
    #再次点击弹出的某个指定值
driver.execute_script("$(arguments[0]).click()",element_with_text)


#输入框的操作:
#先定位到输入框的位置
jgjcsetting = WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.XPATH, '定位元素的信息')))

#使用focus聚焦后再开始输入操作
driver.execute_script("arguments[0].focus();", jgjcsetting)
#输入对应的内容,
jgjcsetting.send_keys("输入测试内容")

#如果使用value 方法,会导致页面元素只存在点击操作,导致输入内容会失败,最好就是使用focus进行操作
driver.execute_script("arguments[0].value = '你好'", element)


这个报错通常是由于滑块元素无法与Selenium进行交互引起的。有几种可能的原因和解决方法: 1. 等待滑块元素可见:在尝试与滑块元素交互之前,等待滑块元素完全加载和可见。可以使用`WebDriverWait`类来实现等待,例如: ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By # 等待滑块元素可见 wait = WebDriverWait(driver, 10) slider = wait.until(EC.visibility_of_element_located((By.XPATH, "滑块元素的XPath"))) # 进行滑动操作 # ... ``` 2. 模拟人工操作:有些网站的滑块使用了一些反爬虫机制,可以尝试通过模拟人工操作的方式来解决。具体步骤包括点击并按住滑块,拖动到指定位置,然后释放鼠标。可以使用`ActionChains`类来实现这些操作,例如: ```python from selenium.webdriver.common.action_chains import ActionChains # 模拟人工操作滑动滑块 action = ActionChains(driver) action.click_and_hold(slider).move_by_offset(200, 0).release().perform() # 继续其他操作 # ... ``` 3. 使用其他库或工具:如果以上方法仍然无法解决问题,可以尝试使用其他库或工具来处理滑块验证,例如`pyppeteer`、`puppeteer`等。这些库可以直接与浏览器进行交互,并提供了更强大的操作能力。 希望以上方法能帮助到你解决问题!如果还有其他疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值