0

我正在自动化网站的一部分,当您单击按钮时该部分将启动工作。作业状态在页面的另一个字段中报告,但不会自动推送。最终用户需要单击页面内的刷新按钮才能查看最新状态。

像这样的东西

browser.expect.element('@status').text.to.equal('Done').before(10000);

如果在不使用交互的情况下推送数据,则可以工作,但是因为我必须手动单击另一个按钮才能获得不起作用的最新状态。

是否有内置方法可以在 Nightwatch 中每隔 [interval here] 执行某些操作,直到 [condition true] 或 [timeout reached]?我不想使用硬暂停,因为这项工作可能需要更多或更少的时间,具体取决于服务器的感觉。

4

1 回答 1

0

另一个字段是指 iFrame、svg 还是另一个选项卡/窗口?您不需要手动,有一个选项可以切换到不同的窗口,如下所示:

窗口句柄 + SwitchTo:

command(windowNum){
   const result = browser.windowHandles();
   let handle = result.value[windowNum];
   browser.switchWindow(handle);
}

刷新页面

browser.refresh();

我不相信 Nightwatch 中有内置方法,但我相信你可以使用 for 循环和 if 语句

于 2021-02-15T08:15:37.450 回答