JavaScript:使用页面对象进行量angular器testing,select下拉列表项目

所以我无法弄清楚这一点。

我的testing要求select一个列表项作为表单的一部分来创build一个新用户。 但是,当我运行testing时,它不会从列表中select一个项目。 量angular器不会返回任何错误,它认为testing是成功的。

我以前使用的函数,但为了减less代码重复,并增加stream动性和灵活性,我已经开始转换testing,以合并页面对象。

下面是我的testing文档,它显示了从两个不同的页面对象调用的函数:

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行之外,一切都在这里工作 – select一个列表项目。

下面是调用.userRole函数时引用的页面对象的片段:

 this.userRole = function (index) { this.element(by.model('tes.userRole')).$('[value="'+index+'"]'); }; 

注意:页面对象与testing对话没有问题,因为有多个其他function可以工作。

让我知道你是否需要更多的信息,欢呼。

我遇到了这个问题几次, 如果你想点击对象,你需要在页面对象中写下这样的东西:

 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+'"]'); }; 

注意返回给你的那个对象,然后在完整的testing中进行交互 – 在我意识到当然,它会被undefined,除非我回来的东西在这个function!

希望有所帮助! :d