Protractor-通用等待URL改变 [英] Protractor- Generic wait for URL to change
问题描述
在previous问题,我已经看到了一个很好的方式来等待链接直接改变就是使用:
In previous questions I have seen that a nice way to wait for the url to change is to use:
browser.wait( function() {
return browser.getCurrentUrl().then(function(url) {
return /myURL/.test(url);
});
}, 10000, "url has not changed");`
但我想有我可以通过myURL作为一个变量(万一我需要与其他网站使用)的方法,而不是工作。
But I am trying to have a method that I can pass myURL as a variable (in case I need to use it with other sites) and is not working.
我在我的页面对象文件尝试这样的:
I am trying this in my Page Object file:
this.waitUrl = function(myUrl) {
browser.wait( function(myUrl) {
return browser.getCurrentUrl().then(function(url, myUrl) {
return myUrl.test(url);
});
}, 10000, "url has not changed");
};
任何想法,如果这甚至有可能,如果是这样怎么办呢?
Any ideas if this is even possible and how to do it if so?
推荐答案
更新(2016年7月):与量角器4.0.0 你可以用的 urlIs
和的 urlContains
内置的预期条件。
Update (July 2016): with Protractor 4.0.0 you can solve it with urlIs
and urlContains
built-in Expected Conditions.
原来的答复:
千万不要错过 myUrl
的然后
函数内部,它可以从网页目标函数范围:
Don't pass myUrl
inside the then
function, it is available from the page object function scope:
browser.wait(function() {
return browser.getCurrentUrl().then(function(url) {
return myUrl.test(url);
});
}, 10000, "url has not changed");
我想,虽然其定义为的预期的条件的:
function waitUrl (myUrl) {
return function () {
return browser.getCurrentUrl().then(function(url) {
return myUrl.test(url);
});
}
}
这样你就可以使用这种方式:
So that you can then use it this way:
browser.wait(waitUrl(/my\.url/), 5000);
这篇关于Protractor-通用等待URL改变的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!