我按照示例,使用 ID 选择器定义 pageObjects 中的元素...
var Page = require('./page')
var MyPage= Object.create(Page, {
/**
* define elements
*/
firstName: { get: function () { return browser.element('#firstName-0'); } },
lastName: { get: function () { return browser.element('#lastName-0'); } },
...
我正在寻找一种传递参数的方法,该参数允许我动态定义选择器。例如'#firstName-0'
我想要 '#firstName-' + i
这样我就可以收集多个名字。
我已经尝试过
firstName: { get: function (i) { return browser.element('#firstName-' + i);}}
然后在测试中..
MyPage.firstName.get(0).setValue('foo');
但它提示 get()
不是一个函数。
有人有什么想法吗?
最佳答案
以下是使用属性描述符在属性上定义函数的方法:
var Page = require('./page')
var MyPage= Object.create(Page, {
/**
* define elements
*/
firstName: { value: { get: function (i) { return browser.element('#firstName-' + i); } } },
...
用法:
MyPage.firstName.get(0).setValue('foo');
关于javascript - Webdriver.io pageObject 模式 - 通过传递参数定义元素选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37276705/