WebdriverIO browser.click给出错误"其他元素将收到点击"。我该如何解决?

时间:2017-11-18 16:44:15

标签: javascript selenium selenium-webdriver integration-testing webdriver-io

当我尝试运行它时,我的webdriverIO selenium代码出现以下错误:

  

失败:未知错误:元素不是   点击点(389,709)。其他元素将收到点击:   < html lang =" en" > ...< / html>

这里是相关代码:

const checkboxSelector = 
    getAttributeSelector('data-test', 'manual-checkbox');
browser.click(checkboxSelector);

如何摆脱此错误?

---附加信息---

测试正在使用chromedriver:

var desktop = exports.desktop = [{
    browser: 'Chrome',
    os: 'Windows',
    os_version: '7'
}];

2 个答案:

答案 0 :(得分:1)

似乎问题是您需要明确滚动到相应的元素才能单击按钮。不确定为什么它不是自动的,但使用browser.scroll(selector)http://webdriver.io/api/utility/scroll.html)可以轻松解决。

const checkboxSelector = 
    getAttributeSelector('data-test', 'manual-checkbox');
browser.scroll(checkboxSelector);
browser.click(checkboxSelector);

问题解决了

答案 1 :(得分:1)

您的网页是否可能包含您可能使用选择器定位的隐藏元素或多个元素?当我看到这个错误时,通常我的单个选择器可以在幕后定位另一个元素。消息"其他元素将收到点击"通常是指示它可能已经拾取了多个元素并且您打算单击的元素的关键,而不是脚本单击的内容。

您可以使用

在浏览器控制台中使用CSS Selector来测试
$$('data-test')

如果您看到返回了多个元素,则可能需要更具体地使用选择器来更精确地缩小您要操作的元素的范围。