将鼠标悬停在 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 中的链接上的主要内容,如果未能解决你的问题,请参考以下文章

将鼠标悬停在第一个孩子无法正常工作的链接上

仅在文本链接悬停 CSS 上显示图像

当我将鼠标悬停在链接上时希望切换图像

在鼠标悬停时将文本悬停在帖子图像上

鼠标悬停播放声音

将鼠标悬停在网站的 href 查看屏幕截图上