selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable的解决方式

问题描述:

元素定位成功,但是click()失败。报错:selenium.common.exceptions.ElementNotInteractableException: Message: element not interactable

原因分析:

1、未放鼠标在元素上,元素的标签:在这里插入图片描述

2、放了鼠标在元素上:元素的标签:
在这里插入图片描述

3、从元素上移开鼠标,元素的标签:
在这里插入图片描述

4、相比较之前,元素的标签属性多了“class=’’”,因此改变的元素的内容,无法click()。

解决方案:

1、解决方式,调用ActionChains(),模拟人类操作过程,先定位的元素为,在这里插入图片描述
然后把鼠标移到元素上,这时元素标签的属性改变了多了class=“focus”,因此需要重新定位元素,然后click()。

解决代码:

1、my_error_element=driver.find_element(By.XPATH,"//*[@id=‘importRenewMiCoinForm’]/div[2]/div/div/div/div/div/ul/li[3]")

2、print(my_error_element.get_attribute(‘outerHTML’))

3、my_action.move_to_element(my_error_element).perform()

4、driver.find_element(By.XPATH,"//*[@id=‘importRenewMiCoinForm’]/div[2]/div/div/div/div/div/ul/li[3]").click()

**解释:

步骤1,定位元素。步骤2,看一下是否定位成功,并输出元素的所有标签内容。步骤3,将鼠标放在该元素上。步骤4,重新定位元素,并点击元素。**

关于步骤3的前期import部分和调用部分

1)from selenium.webdriver.common.action_chains import ActionChains

2)driver=webdriver.Chrome()

3)my_action=ActionChains(driver)

4)url0=“http://us.tracksolidpro.com/mainFrame”

5)driver.get(url0)

我的猜想,没研究click()源码部分,猜想不对的话,请大佬指点。

我的猜想是,click()点击一个元素时,先将鼠标放在该元素上,然后传入需要的定位的元素的参数。因此,click失败了。因为鼠标放在元素上后,元素的属性改变了,而传入的参数却是老旧的,所以无法点击。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学安全做测试的小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值