当前位置:  开发笔记 > 编程语言 > 正文

Protractor- Generic等待URL改变

如何解决《Protractor-Generic等待URL改变》经验,为你挑选了1个好方法。

在之前的问题中,我已经看到等待url更改的好方法是使用:

browser.wait( function() {
    return browser.getCurrentUrl().then(function(url) {
        return /myURL/.test(url);
    });
}, 10000, "url has not changed");`

但我试图有一个方法,我可以将myURL作为变量传递(如果我需要将其与其他网站一起使用)并且无法正常工作.

我在我的Page Object文件中尝试这个:

this.waitUrl = function(myUrl) {
    browser.wait( function(myUrl) {
        return browser.getCurrentUrl().then(function(url, myUrl) {
            return myUrl.test(url);
        });
    }, 10000, "url has not changed");
};

如果这是可能的任何想法,如果这样做怎么办?



1> alecxe..:

更新(2016年7月):使用Protractor 4.0.0,您可以使用urlIsurlContains内置预期条件来解决它.


原始答案:

不要传递函数myUrl内部then,它可以从页面对象函数范围获得:

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);
        });
    }
}

这样你就可以这样使用它:

browser.wait(waitUrl(/my\.url/), 5000);

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有