将鼠标悬停在 nightwatchjs 中的链接上
Posted
技术标签:
【中文标题】将鼠标悬停在 nightwatchjs 中的链接上【英文标题】:Hovering over a link in nightwatchjs 【发布时间】:2015-08-20 19:17:54 【问题描述】:我一直在使用nightwatch.js
并且总是点击元素。有没有办法可以将鼠标悬停在链接或按钮上?
【问题讨论】:
【参考方案1】:试试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 完成后,它会等到仅悬停元素出现。之后它会与之交互。
文档:http://nightwatchjs.org/api/moveToElement.html
【讨论】:
【参考方案2】:您可以使用 selenium API moveTo 命令。它将鼠标移动到给定的元素,并且它应该停留在该元素上,直到使用涉及鼠标的下一个命令。
browser.moveTo(selector, xoffset, yoffset, function()
browser.pause(2000)
)
只需暂停您希望悬停的时间。这是moveTo的api文档。
【讨论】:
【参考方案3】:你可以这样写代码:
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函数将不起作用(它会返回一个未定义的错误)
【讨论】:
以上是关于将鼠标悬停在 nightwatchjs 中的链接上的主要内容,如果未能解决你的问题,请参考以下文章