Webdriver.io pageObject 模式 - 通过传递参数定义元素选择器
Webdriver.io pageObject pattern - define element selector by passing argument
我正在按照示例进行操作,以便使用 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');
我正在按照示例进行操作,以便使用 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');