angular - 如何从 Protractor API 获取查询参数

标签 angular protractor e2e-testing

我正在我的 Angular 7 应用程序上执行 E2E 测试,其中我有一个测试用例,其中我从 UI 应用过滤器,并将过滤器附加到作为查询参数

生成的 URL 如下所示:

http://localhost:4000/search?programme=1

但是当我使用 browser.getCurrentUrl() 时,它只是返回 http://localhost:4000/search 没有查询参数。

现在我正在使用 browser.getLocationAbsUrl(),但 Protractor 本身会抛出错误,它已弃用

it('Select GV filter and check params', () => {
    searchPage.selectOnePrgram();
    expect<any>(browser.getLocationAbsUrl()).toContain('program=1'); 
   // [11:53:11] W/protractor - `browser.getLocationAbsUrl()` is deprecated, please use `browser.getCurrentUrl` instead.

});

我的问题是如何将查询参数放入我的 .spec.ts 文件中?

它是否属于 E2E 范围,或者应该在单元测试中?

最佳答案

您只需使用从 browser.getCurrentUrl() 获取的 then() 来管理 Promise。

示例代码:

  browser.getCurrentUrl().then(
    (res) => {
      console.log(res);
      // response will includes the url with query params
    }
  );

关于angular - 如何从 Protractor API 获取查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55586366/

相关文章:

testing - 我可以使用 TestCafe 进行非浏览器测试吗?

javascript - 如何使用 Protractor 检查类名的变化

testing - 我可以在 testCafe 中使用局部变量吗?

javascript - Angular Material 2 选项卡动态内容

javascript - 检查 Protractor 中是否选择了选择字段

angular - 错误 : XHR error (404 Not Found) loading angular2/http

selenium - 使用 Bamboo CI 设置 Protractor e2e 测试

browser - 如何在不通过 Jenkins 服务器打开浏览器的情况下运行 Protractor e2e 测试?

javascript - Angular7 等同于 C# 属性装饰器

angular - 如何使 mat-table 行拖放与 cdkDragHandle 一起工作,以便只能使用句柄拖动该行?