无法访问NightwatchJS中页面的网址

问题描述 投票:0回答:1

我在测试运行期间间歇性地无法获取url。让我给你背景:点击页面上的按钮,它导航到下一页。首先导航我想在测试期间验证网址。下面是我用来从当前页面获取网址的代码片段。

1. Native implementation of nightwatch for the url assertion

assertUrlContains(text) {
  this.assert.urlContains(text);
  return this;
}

2. Also, tried to fetch the url using the api.url with promise pattern.

getCurrentUrl() {
      return new Promise((resolve) => {
        this.api.url((result) => {
          resolve(result.value);
        });
      });
    }

这两种方法都有相同的问题,下面是错误的堆栈跟踪:

SEARCH RESULTS URL: null
 (node:12375) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): TypeError: Cannot read property 'indexOf' of null
 (node:12375) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
✖ TypeError: Cannot read property 'indexOf' of null 

奇怪的是我注意到浏览器导航到目标页面,但即使页面加载事件完成,夜视也无法获取URL。

selenium selenium-webdriver nightwatch.js
1个回答
0
投票

单击按钮后可以添加显式等待条件,以确保已成功加载所需页面。然后,您可以使用以下方法之一来验证URL:

  • urlEquals API用于此处记录的夜间活动:http://nightwatchjs.org/api#assert-urlEquals
  • 您可以通过测试脚本执行javascript命令:window.location.href以检索窗口的URL并将其另存为字符串。然后,您可以对此字符串执行断言
© www.soinside.com 2019 - 2024. All rights reserved.