【问题标题】:Chrome browser 61v. Problems with click on element outside visible areaChrome 浏览器 61v。单击可见区域外的元素时出现问题
【发布时间】:2017-09-11 11:32:54
【问题描述】:

当我将 Chrome 浏览器更新到 61v 时,点击可见区域之外的不可见元素会出现问题。

早点成功

尝试点击可见区域外的链接:element.Click() 有:InvalidOperationException;元素在点 (1134, 989) 处不可点击

是否有一些决定? 也许更新 chrome 驱动程序有帮助?

【问题讨论】:

  • 首先要尝试更新 chrome 驱动程序
  • 可能他们更正了之前不应该工作的地方?
  • 尝试点击可见区域外的链接:element.Click()

标签: c# google-chrome selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

我们遇到了同样的问题。我们使用的是 Chromedriver 2.31 版。更新到 2.32 后问题消失了。以下是对 2.32 所做的更改之一: “修复了由于 Chrome 61+ 中页面滚动更改导致 Chromedriver 无法点击的错误。”

【讨论】:

  • 是的,我在chrome的官方网站上看到了这个。我会尝试将我的 Chromedriver 更新到 2.32。谢谢!
  • 真的很有帮助!谢谢
【解决方案2】:

我用一些 JavaScript 实现了一个方法来帮助解决这些问题(滚动到视图中),当然对于我使用的任何浏览器都必须以不同的方式实现它。

试试这个:

IJavaScriptExecutor js = SeleniumDrivers.driver as IJavaScriptExecutor;

铬:

js.ExecuteScript("arguments[0].scrollIntoViewIfNeeded(true);", e);

火狐和 IE:

js.ExecuteScript("arguments[0].scrollIntoView(true);" +
                                     "window.scrollBy(0,-100);", e);

您不需要“window.scrollBy”部分,但我注意到添加该部分对我有帮助。显然,您可以将变量设置为适合您的任何变量,或者如果它不适合您的需要,则将其完全删除。

这解决了我的大部分“外部可见区域”问题。

我后来也不得不不断地向窗口添加焦点。这确实成为 IE 的一个问题。所以这是在下面实现的:

driver.SwitchTo().Window(driver.CurrentWindowHandle);

它似乎对 Firefox 也有帮助。

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2013-06-12
    相关资源
    最近更新 更多