我一直在使用nightwatch.js
并且总是点击元素。有没有办法将鼠标悬停在链接或按钮上?
答案 0 :(得分:22)
尝试browser.moveToElement
命令。
您也可以在moveToElement
完成后触发回调:
browser.waitForElementVisible('.recommendation', 1000, function () {
// moveToElement can also accept offsets
browser.moveToElement('.recommendation', 100, 100, function() {
browser.waitForElementVisible('.share', 500, function () {
browser.click('.share');
}, "Click share icon. ");
});
}, "Find a recommendation ");
上面的代码移动到一个元素。在moveTo完成之后,它等待直到仅存在悬停元素。之后它会与之互动。
答案 1 :(得分:2)
您可以使用selenium API moveTo命令。它会将鼠标移动到给定元素,它应该保持在该元素上,直到使用涉及鼠标的下一个命令。
browser.moveTo(selector, xoffset, yoffset, function(){
browser.pause(2000)
})
暂停您希望悬停的时间。以下是moveTo的api文档。
答案 2 :(得分:0)
您可以这样编写代码:
browser.pause(1000, () => {
//first it will find the x and y of the given selector
browser.getLocation(selector, (res) => {
//then it will move to this selector and hover it
browser.moveToElement(selector, res.value.x, res.value.y, (res) => {
//callback function
});
});
})
请注意,如果您之前使用过waitForElementVisible,则可以更改选择器参数,并且moveToElement函数将不起作用(它将返回未定义的错误)