单击鼠标按钮后的事件

Events after clickMouseButton

在我的一项测试中,我将鼠标移动到特定位置,然后调用 clickMouseButton()。此操作是更改显示的数据(对数据进行分页。)但是,单击后,当我尝试获取 table 的列中的文本以验证数据已更改时,数据更改回最初显示的是什么,我的测试失败了。我的测试代码是:

return Remote
    .moveMouseTo(JE.Buttons.Scrolling(), 5, 100)
    .clickMouseButton()
    .end(Infinity)
    .sleep(500)
    .findByXpath('//*[@id="vwNJEAll_grid_header_tbody"]/tr[2]/td[2]/div')
    .getVisibleText()
    .then(function (result) {
        expect(result).not.to.equal(firstSeenJENumber);
    });

JE.Buttons.Scrolling()后面的代码是:

return Remote
    .setFindTimeout(5000)
    .findByXpath('//*[@id="vwNJEAll_grid_table_container"]/div[2]/div');

在我看来,Leadfoot 中的定位器在首次加载时确实绑定到页面上的内容。是这样吗,我应该如何着手获得我需要发生的事情?我对此没有其他解释,但希望你能做到。

moveMouseTo 不接受 Promise 作为其第一个参数,因此 moveMouseTo 调用是错误的,不会执行您想要的操作。 JE.Buttons.Scrolling() 示例代码中的调用也会立即发生(在命令链构造期间),它不会仅在 moveMouseTo 实际执行后才发生。

要通过抽象函数检索和使用元素,请将函数传递给 then,然后使用元素:

return Remote
  .then(JE.Buttons.Scrolling)
  .then(function (element) {
    return Remote.moveMouseTo(element, 5, 100);
  })
  // …remainder of test…