gpt4 book ai didi

angularjs - Protractor 测试 AngularJS 无法通过 id 找到确实存在的元素

转载 作者:行者123 更新时间:2023-12-03 00:00:05 24 4
gpt4 key购买 nike

我有一个示例 AngularJS 站点 @ https://gamersweb-js.firebaseapp.com/ ,其中包含一个 Protractor 测试用例,该测试用例应该在其中一个页面上通过 id 查找元素。具有此 id 'displayNameInHome' 的元素确实存在(在用户的“主页”页面中),但测试用例无法在那里找到它。

要访问该网页,请使用用户“tester@qa.com”+密码“123456”的凭据登录,这将带您进入用户的主页。以下测试用例在此页面上找不到元素“displayNameInHome”,该元素将是“Welcome ....”后面字符串“tester”的 id:

beforeEach(function() {
//browser.get('http://localhost:5000/');
browser.get('https://gamersweb-js.firebaseapp.com');
});

it('Testing display name in profile for logged in user:', function() {
element(by.model('loginUI.email')).clear().sendKeys('tester@qa.com');
element(by.model('loginUI.password')).clear().sendKeys('123456');
element(by.id('loginBtn')).click();

return browser.wait(function() {
var displayNameInHome = element(by.id('displayNameInHome'));
return displayNameInHome.getText().then(function(text) {
return text =="tester";
});
}, 10000);

});

我无法弄清楚为什么测试用例没有找到元素“displayNameInHome”。任何帮助将不胜感激。

谢谢。

最佳答案

browser.wait() 的第一个参数实际上是等待的条件。所以你的测试退出得很快,因为第一个参数不是条件。

此外,您的测试缺少 expect

我更改了您的代码,以便测试等待 10 秒以显示 #displayNameInHome 元素,然后执行断言。

it('Testing display name in profile for logged in user:', function() {
element(by.model('loginUI.email')).clear().sendKeys('tester@qa.com');
element(by.model('loginUI.password')).clear().sendKeys('123456');
element(by.id('loginBtn')).click();
var displayNameInHome = element(by.id('displayNameInHome'));
browser.wait(function() {
return browser.isElementPresent(displayNameInHome)
}, 10000);

expect(displayNameInHome.getText()).toEqual('tester');
});

关于angularjs - Protractor 测试 AngularJS 无法通过 id 找到确实存在的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43713099/

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