gpt4 book ai didi

javascript - 如何让 Protractor 的部分等待或同步?

转载 作者:行者123 更新时间:2023-11-30 16:51:15 25 4
gpt4 key购买 nike

我在 Protractor 测试中有这样的代码,它转到主页确定我们需要登录然后调用此函数。注意我在 NODE.js 环境中运行它:

function Login() {
browser.findElement(by.id('ID')).then(function (ele) {
ele.sendKeys('SomeUserName');
browser.findElement(by.id('password')).then(function (ele) {
ele.sendKeys('SomePassword');
browser.findElement(by.partialButtonText('Sign in')).then(function (ele) {
ele.click();
browser.getCurrentUrl().then(function (url) {
expect(url).toBe("http://NextURLAfterClick");
debugger;
});
});
});
});
}

但我无法在验证 browser.getCurrentUrl() 之前触发点击,所以我正在获取登录页面的 url,我想要点击登录后获取url

我怀疑这是我对它的异步性质如何工作的误解。

最佳答案

How to make parts of Protractor wait or become synchronous?

您可以等待 url 在 browser.wait() 的帮助下更改:

var urlChanged = function(url) {
return function () {
return browser.getCurrentUrl().then(function(actualUrl) {
return url === actualUrl;
});
};
};

element(by.id('ID')).sendKeys('SomeUserName');
element(by.id('password')).sendKeys('SomePassword');
element(by.partialButtonText('Sign in')).click();

browser.wait(urlChanged("http://NextURLAfterClick")), 5000);

selenium 术语中,urlChanged 是“自定义预期条件”。

关于javascript - 如何让 Protractor 的部分等待或同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30491815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com