Firefox上运行自动化测试脚本提示元素无法点击“WebDriverException: Message: Element is not clickable at point“解决方法...

1. Firefox上运行脚本时提示“WebDriverException: Message: Element is not clickable at point (934.316650390625, 700.316650390625). Other element would receive the click:”

2.分析原因:  

  (1)首先肯定不是因为页面元素不存在而无法点击,也不是要点击的button不在预览范围内。

  (2)可能是被前一步的操作的一个弹出层挡住了。因为前几步是弹出了一个modal,在关闭modal的时候webdriver就立刻执行下一步点击某个link,而这时modal可能还没完全关闭掉。
     解决办法是等待那个弹出层完全关闭掉,link可以点击的时候再执行利用类库中的‘WebDriverWait’方法,

    java中语法:

       WebDriverWait wait = new WebDriverWait(driver, 15);

          wait.until(ExpectedConditions.elementToBeClickable(By.id("ID of the element")));//等待直到定位的元素可以点击 打算用上面的方法来解决

      结果坑爹的不起作用,实在闹不明白为啥不起作用。 最后直接在两步之间加了个简单的thread.sleep(2000)命令解决了

   python中语法:
       element = WebDriverWait(driver,3,0.5).until(EC.presence_of_element_located((By.ID,"saveNewFormId")))

       element.find_element_by_id("saveNewFormId").click()

     结果也解决了问题,··· 至于为啥可能selenium支持的更好些吧
(3)另外一种情况是元素在视图之外,可以用调用JS这种方法解决,不过还没尝试,做个记录:
      (JavascriptExecutor) driver).executeScript( "arguments[0].scrollIntoView(true);", webElement);
                                                  webElement.click();

(4)我能想到的就这几个原因了,希望有别的解决方法的同仁能补充一下,更好的帮助后来者解决问题,谢谢!
(TestYao编辑于2016年3月31日晚)

转载于:https://www.cnblogs.com/testyao/p/5342503.html

ElementNotInteractableException通常发生在Selenium自动化测试中,当你尝试与页面上的某个元素交互(如点击、输入文本等),但该元素的状态不允许互动时。这可能是由于以下几个原因: 1. 元素未完全加载:确保你的WebDriver等待足够的时间,直到元素出现在DOM中并变得可交互。 2. 元素隐藏或不可见:检查元素是否可见,使用`element.is_displayed()`或`element的位置属性`确认。 3. 元素已被其他脚本锁定:如果页面有JavaScript动态生成或操作元素,可能会导致元素暂时无法访问。这时可以考虑使用`execute_script`来模拟用户行为。 4. 禁止交互的元素:有些元素可能设置了禁止鼠标交互,可以尝试查找可替代的元素或者检查CSS选择器是否正确。 5. 错误地定位元素:确认你通过CSS选择器或XPath找到的是正确的元素,有时候元素的布局变化可能导致定位失败。 解决这类问题的关键是对情况进行细致的分析,并相应调整你的代码。例如,添加适当的延迟、错误处理或尝试不同的定位策略。下面是修复的一个基本示例: ```python from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC try: # 使用显式等待,等待元素变为可交互状态 element = WebDriverWait(driver, 10).until( EC.element_to_be_clickable((By.XPATH, 'your_xpath_here')) ) element.click() except ElementNotInteractableException as e: print(f"Element is not interactive: {e}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值