JavaScript:使用页面对象选择下拉列表项进行 Protractor 测试
JavaScript: Choosing dropdown list items using Page Objects for Protractor testing
所以我搞不懂这个。
我的测试要求选择一个列表项作为表单的一部分来创建新用户。但是,当我 运行 测试时,它不会从列表中选择一个项目。 Protractor 没有 return 任何错误,它认为测试成功。
我之前使用的功能是有效的,但为了减少代码重复并提高流动性和灵活性,我已经开始转换测试以合并页面对象。
下面是我的测试文档,其中显示了从两个不同页面对象调用的函数:
it('Should create first new User.', function() {
var users_page = require('../page/users_page.js');
var addUser_page = require('../page/addUser_page.js');
users_page.addUserButton.click();
addUser_page.addUser('Test', 'Smith', 'Test100@testing.co.nz', 'Password', 'Password', '0');
addUser_page.userRole[1];
addUser_page.confirmNewUser.click();
addUser_page.backToUsersPage.click();
});
除了第 6 行 - 选择列表项外,这里的一切都正常。
下面是我在调用 .userRole 函数时引用的页面对象的片段:
this.userRole = function (index) {
this.element(by.model('tes.userRole')).$('[value="'+index+'"]');
};
注意:与测试对话的页面对象没有问题,因为有多个其他功能确实有效。
如果您需要更多信息,请告诉我,干杯。
这个问题我运行进过几次;如果你想点击对象,你需要在你的页面对象中写这样的东西:
this.clickUserRoleByIndex = function (index) {
this.element(by.model('tes.userRole')).$('[value="'+index+'"]').click();
};
或者我认为你想做什么...
您可以像这样获取该对象:
this.getUserRoleByIndex = function (index) {
return this.element(by.model('tes.userRole')).$('[value="'+index+'"]');
};
请注意 return 为您提供了该对象,然后在完整测试中与之交互 - 在我意识到它当然会是undefined 除非我 return 在那个函数里有东西!
希望对您有所帮助! :D
所以我搞不懂这个。
我的测试要求选择一个列表项作为表单的一部分来创建新用户。但是,当我 运行 测试时,它不会从列表中选择一个项目。 Protractor 没有 return 任何错误,它认为测试成功。
我之前使用的功能是有效的,但为了减少代码重复并提高流动性和灵活性,我已经开始转换测试以合并页面对象。
下面是我的测试文档,其中显示了从两个不同页面对象调用的函数:
it('Should create first new User.', function() {
var users_page = require('../page/users_page.js');
var addUser_page = require('../page/addUser_page.js');
users_page.addUserButton.click();
addUser_page.addUser('Test', 'Smith', 'Test100@testing.co.nz', 'Password', 'Password', '0');
addUser_page.userRole[1];
addUser_page.confirmNewUser.click();
addUser_page.backToUsersPage.click();
});
除了第 6 行 - 选择列表项外,这里的一切都正常。
下面是我在调用 .userRole 函数时引用的页面对象的片段:
this.userRole = function (index) {
this.element(by.model('tes.userRole')).$('[value="'+index+'"]');
};
注意:与测试对话的页面对象没有问题,因为有多个其他功能确实有效。
如果您需要更多信息,请告诉我,干杯。
这个问题我运行进过几次;如果你想点击对象,你需要在你的页面对象中写这样的东西:
this.clickUserRoleByIndex = function (index) {
this.element(by.model('tes.userRole')).$('[value="'+index+'"]').click();
};
或者我认为你想做什么...
您可以像这样获取该对象:
this.getUserRoleByIndex = function (index) {
return this.element(by.model('tes.userRole')).$('[value="'+index+'"]');
};
请注意 return 为您提供了该对象,然后在完整测试中与之交互 - 在我意识到它当然会是undefined 除非我 return 在那个函数里有东西!
希望对您有所帮助! :D