【问题标题】:Click not working in selenium and nightwatch单击在 selenium 和 nightwatch 中不起作用
【发布时间】:2021-05-25 20:22:12
【问题描述】:

我在使用 nightwatch 时遇到了这个问题,其中 .click() 不适用于选择器。我添加了 --verbose 参数并显示此消息“在点 (525, 560) 不可点击”。它适用于常规 jquery 执行,但我需要它来处理 nightWatch 命令和 selenium。

我创建了一个自定义命令来单击,其中包括在单击之前查看对象是否可见的验证。我在下面添加了这个函数,以及来自 --verbose 参数的完整错误。

module.exports.command = function(source) {
  let self = this

    self
  .waitForElementVisible(source,6000)

  .click(source)

  return self
}

value: { message: 'unknown error: Element ... 在点 (525, 560) 处不可点击。其他元素会收到点击:...\n (Session info: chrome=61.0.3163.100)\n (Driver info: chromedriver=2.33.506092 (733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform=Linux 4.4.0-97-generic x86_64)' } }

【问题讨论】:

    标签: jquery selenium


    【解决方案1】:

    为了避免 selenium 的错误,您必须将指针移动或悬停到该位置,您可以使用 .moveToElement 执行此操作。

    您还可以在文档nightwatch-docs 中看到它的用法。

    只是为了澄清这并不是一个真正的守夜虫,而是一个硒虫。

    module.exports.command = function(source) {
      let self = this
    
        self
      .waitForElementVisible(source,6000)
      .moveToElement(source,undefined, undefined)
      .click(source)
    
      return self
    }
    

    【讨论】:

    • 呵呵呵呵救了我的命,这就像一个魅力谢谢。
    • @moplin,是什么让您认为这是 Selenium 错误,而 .moveToElement 是解决方案?由于.moveToElement 引入的延迟,它可能在这种情况下有效。 Chrome 驱动程序通常会在 css 转换期间执行单击或目标元素被另一个元素(页脚或页眉)覆盖时引发此错误。
    • @FlorentB。实际上,在我使用 mplon 解决方案之后,我发现根据 nightwatch 的点击是一个硒问题,因为此时元素不可点击,但是悬停在上面所做的是将它设置为使其工作的过度状态,至少在我的案例这解决了它,因为如果没有,根据详细的点击,因为元素不存在将被定位到另一个元素。
    • @FlorentB。这是 nightwatch 如何解决此问题的一个示例,他们甚至关闭了该问题并将其提交给仅硒问题github.com/nightwatchjs/nightwatch/issues/1047
    • @rafael matovelle,您是否尝试过在点击前延迟? browser.pause(100);
    【解决方案2】:

    在某些情况下(尤其是 Chrome 浏览器),其他元素与目标元素重叠可能会导致问题。有时可以通过预先最大化浏览器窗口来缓解这种情况。

    换句话说,在测试之前添加browser.windowMaximize(); 之类的内容可以解决此问题。

    【讨论】:

      【解决方案3】:

      chromedriver 2.30 也有同样的问题,但是当更新到 2.33 时,我可以点击而没有解决方法。我看到你已经有 2.33。

      您也可以更新 Selenium Server。我正在使用“3.4.0”和“3.5.0”,它适用于 chromedriver 2.33

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-22
        • 2014-01-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-16
        • 1970-01-01
        相关资源
        最近更新 更多