如何从量角器API获取查询参数

时间:2019-04-09 06:27:00

标签: angular protractor e2e-testing

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

生成的网址如下:

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

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

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

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文件中?

是端到端范围还是应该进行单元测试?

2 个答案:

答案 0 :(得分:2)

您只需使用then()上的browser.getCurrentUrl()来管理诺言。

示例代码:

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

答案 1 :(得分:1)

使用异步/等待而不是诺言链。以下应该工作。 getCurrentUrl返回一个Promise,需要解决。请参阅https://www.protractortest.org/#/api?view=webdriver.WebDriver.prototype.getCurrentUrl-

it('Select GV filter and check params', async () => {
await searchPage.selectOnePrgram();
let currentLoc = await browser.getCurrentUrl();
expect(currentLoc).toContain('program=1'); 

});