【问题标题】:Selenium IWebElement.Click() doesn't work intermittentlySelenium IWebElement.Click() 无法间歇性工作
【发布时间】:2020-10-17 00:30:39
【问题描述】:

所以这类似于Click() method will not always work,但有几个重要的区别:

  • 不是时间问题,因为我反复尝试点击它直到成功
  • 没有抛出异常,只是没有任何反应
  • 使用 JS 点击相同的元素可以工作 - executor.executeScript("arguments[0].click();", element);
  • 改为使用 button.SendKeys(Keys.Return) 即可。
  • Displayed: trueEnabled: true

只有 button.Click() 不起作用。我已经在断点处停止了应用程序,现在正在通过即时窗口对其进行测试。我可以看到 Click() 没有任何效果并且不会引发异常,但是 javascript click() 和 SendKeys() 可以工作。

一些附加信息:

  • 我在 IE11 上使用 InternetExplorerDriver
  • 我正在通过远程桌面在 Windows Server 2012 上运行测试
  • 它只是间歇性地发生。我记得每次发生测试时都会在运行测试时切换 Alt+Tab,但我不知道这是否是原因。

知道发生了什么吗?

编辑:我注意到第一次点击按下按钮(可见)但它没有得到点击。但是,第二次单击成功。之前的 Click() 没有成功,不管我执行了多少次。

编辑 2:好的,现在我已经确定了 - 如果我单击浏览器窗口,然后单击 Visual Studio,那么第一个 Click() 不起作用。即使 VS 仍然专注,后续的点击都可以工作。从VS切换到记事本再切换到VS不会触发,只会切换到IE再切换回VS。

好像不是IE没有焦点的问题,是有焦点然后失去焦点,那么下一次Click()就会失败。

【问题讨论】:

  • 从您的描述看来,您已经发现了问题所在。在我看来,我认为这可能也与 IE 与其他浏览器相比相对较慢有关,因此,您可以尝试使用 WebDriverWait methods 等待查找元素。所以,在 IE 浏览器中点击一个按钮元素,最好保持焦点在 IE 窗口上,或者使用 JavaScript 或 SendKeys 方法点击它。
  • 是的,我切换到 javascript 进行点击,现在没有问题了。

标签: c# selenium internet-explorer-11 internet-explorer-driver


【解决方案1】:

在我的情况下,控件与另一个 div 部分重叠,并且 webDriver 在控件中间单击但击中了 div。你能检查一下,也许是你的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 2019-11-22
    • 2015-12-02
    • 2020-06-12
    • 2012-08-08
    相关资源
    最近更新 更多