量角器:如何期望浏览器 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");
});
我在 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");
});