Testing 选择器应使用函数初始化
我成功地选择了一组页面元素,现在我将所有这些元素传递给单独的页面模型和助手函数 对于后者,我创建了一个助手函数类,如下所示:Testing 选择器应使用函数初始化,testing,ecmascript-6,automated-tests,e2e-testing,testcafe,Testing,Ecmascript 6,Automated Tests,E2e Testing,Testcafe,我成功地选择了一组页面元素,现在我将所有这些元素传递给单独的页面模型和助手函数 对于后者,我创建了一个助手函数类,如下所示: import { Selector } from 'testcafe'; export default class Helpers { selectPageElement (elementName) { const elementTitle = Selector ('div').child('h2'); const numberOfElements
import { Selector } from 'testcafe';
export default class Helpers {
selectPageElement (elementName) {
const elementTitle = Selector ('div').child('h2');
const numberOfElements = elementTitle.count;
if (numberOfElements) {
for (let i = 0; i < numberOfElements; i++) {
if (elementTitle.nth(i) === 'aname') {
return elementTitle.nth(i);
}
}
} else {
return false;
}
}
}
import { ClientFunction, Selector } from 'testcafe';
import Helpers from './helpers';
...
const helpers = new Helpers();
test('Test name', async t => {
...
await t
.click(helpers.selectPageElement('Element Name'));
});
但我得到了以下错误:
Action "selector" argument error:
Selector is expected to be initialized with a function, CSS selector string,
another Selector, node snapshot or a Promise returned by a Selector,
but undefined was passed.
我对ES6相当陌生,因此我相信这与我调用方法的方式有关。解决方案可以是:
export default class Helpers {
selectPageElement (elementName) {
return Selector('div > h2')
.withText(elementName);
}
}
我唯一想添加的是,这个原始代码
constnumberofelements=elementTitle.count由于缺少wait
关键字,code>可能无法正常工作。请参阅本节。