gpt4 book ai didi

angularjs - 在 Protractor/Webdriver 中等待页面重定向

转载 作者:行者123 更新时间:2023-12-03 22:19:25 26 4
gpt4 key购买 nike

我有一个单击按钮并重定向到用户仪表板的测试。发生这种情况时,Webdriver 返回:javascript error: document unloaded while waiting for result.
为了解决这个问题,我插入 browser.sleep(2000)在发生重定向并假设我的 CPU 使用率较低时,这解决了问题。但是,2000 ms 是任意且缓慢的。有没有类似 browser.waitForAngular()这将等待 angular 在 expect(..) 之前加载到重定向页面上?

it('should create a new user', () => {
$signUp.click();
$email.sendKeys((new Date().getTime()) + '@.com');
$password.sendKeys('12345');
$submit.click();

browser.sleep(2000); // Need alternative to sleep...

// This doesn't do it...
// browser.sleep(1);
// browser.waitForAngular();

$body.evaluate('user')
.then((user) => {
expect(user).toBe(true);
});
});

最佳答案

你认为这样的事情对你有用吗?这将等待 10 秒,让 url 包含文本“pageTwo”或您输入的任何内容。

var nextPageButton = $('#nextPage');
nextPageButton.click().then(function(){
return browser.driver.wait(function() {
return browser.driver.getCurrentUrl().then(function(url) {
return /pageTwo/.test(url);
});
}, 10000);
};

只需坚持您期望的网址的正则表达式即可。

或者,您也可以等待下一页中的元素出现:
var nextPageButton = $('#nextPage');
nextPageButton.click();

var elementFromSecondPage = $('#coolElement');
browser.wait(protractor.until.elementIsVisible(elementFromSecondPage), 5000, 'Error: Element did not display within 5 seconds');

使用 .click 时,protractor 自然会等待 angular 完成点击附加的 Action ,比如换页。但是,当页面更改时,您可能仍然需要加载特定的内容,因此在该部分可用之前测试失败。使用这个,它应该等待点击部分完成,然后等待元素出现。

关于angularjs - 在 Protractor/Webdriver 中等待页面重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854344/

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