我有夜视仪的问题,其中.click()不能与选择器一起使用。我添加了--verbose参数,它显示了此消息" 在点(525,560)"时无法点击。它适用于常规jquery执行,但我需要它来处理nightWatch命令和selenium。
我创建了一个要单击的自定义命令,其中包含一个验证,以便在单击之前查看对象是否可见。我在下面添加了这个函数,以及--verbose参数的完整错误。
module.exports.command = function(source) {
let self = this
self
.waitForElementVisible(source,6000)
.click(source)
return self
}
值:{message:'未知错误:元素...在点(525,560)处无法点击。其他元素将收到点击:... \ n(会话信息:chrome = 61.0.3163.100)\ n(驱动程序信息:chromedriver = 2.33.506092(733a02544d189eeb751fe0d7ddca79a0ee28cce4),platform = Linux 4.4.0-97-generic x86_64)& #39; }}
答案 0 :(得分:2)
为了避免来自selenium的错误,您必须将指针移动或悬停在该位置,您可以使用.moveToElement执行此操作。
您可能还会在文档nightwatch-docs中看到它的用法。
只是为了澄清这不是一个夜间监视虫,而是一个硒虫。
module.exports.command = function(source) {
let self = this
self
.waitForElementVisible(source,6000)
.moveToElement(source,undefined, undefined)
.click(source)
return self
}
答案 1 :(得分:0)
与chromedriver 2.30有同样的问题但是当更新到2.33时我能够点击没有解决方法。我知道你已经有了2.33。
您也可以更新Selenium Server。我正在使用' 3.4.0'和' 3.5.0'它与chromedriver 2.33
一起使用答案 2 :(得分:0)
在某些情况下(尤其是 Chrome 浏览器),问题可能是由与目标元素重叠的其他元素引起的。有时可以通过预先最大化浏览器窗口来缓解这种情况。
换句话说,在测试之前添加类似 browser.windowMaximize();
的内容可以解决此问题。