量角器:如何期望浏览器 url 等于注册新用户后具有 ID 的 url?

Protractor: How to expect browser url to equal url that have an id after registering new user?

我在 Protractor 中做了一些测试,遇到了一个小问题:

我做了一个注册新用户的测试,当我完成注册后 url 会是这样的:

#/user/592/profile

所以,我的问题是,我怎样才能设法让新用户的 ID 在我的测试中得到一个 true?像这样:

expect(browser.getCurrentUrl()).toEqual(browser.baseUrl+#/user/ID_OF_NEW_USER/profile);

我该怎么做?如果可能的话当然可以。

在您的情况下,User_Id 将动态生成。因此,您需要编写一些自定义代码来选择新的 user_id 并在预期条件下使用它。您可以按照以下代码片段:

 Code: 

     browser.getCurrentUrl().then(function(url){
      var startIndex=(url.indexOf("user/"))+5;
      var endIndex=(url.indexOf(startIndex))+2;
      var user_id=url.substr(startIndex,endIndex);
      //it will return exactly user_id value
      expect(browser.getCurrentUrl())
            .toEqual(browser.baseUrl+"#/user/"+user_id+"/profile");

    });

以下代码适用于用户 ID 中的任意位数。

browser.getCurrentUrl().then(function(url){
  var user_id=url.split("user/")[1].replace("/profile","");
  //it will return exactly user_id value
  expect(browser.getCurrentUrl())
        .toEqual(browser.baseUrl+"#/user/"+user_id+"/profile");

});