Mos*_*rge 5 automation nightwatch.js
我如何在夜间值班中单击元素命令返回的按钮
client.elements('xpath', ".//a[@class='abcd')]", function (allButtons){
console.log('Element value is '+element)
allButtons.value.forEach(function (element) {
this.elementIdClick(element, function(res){});
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时我收到一个错误
元素值为 [object Object]
Run Code Online (Sandbox Code Playgroud)TypeError: Object #<Object> has no method 'elementIdClick'
那么我如何从返回的元素列表中获取每个元素 client.elements
我意识到 elementIdClick 的参数是错误的,我将代码更新为
client.elements('xpath', ".//a[@class='abcd')]", function (allButtons){
allButtons.value.forEach(function (element) {
console.log('Element value is '+element)
this.elementIdClick(this.elementIdAttribute(allButtons.value[element].ELEMENT, 'id'), function(res){});
Run Code Online (Sandbox Code Playgroud)
现在的错误是
Element value is [object Object]
TypeError: Cannot read property 'ELEMENT' of undefined
Run Code Online (Sandbox Code Playgroud)
所以再次回到原来的问题。我如何使用 nightwatchJS 从网络元素列表中获取单个元素
小智 6
以下对我有用:
function iter(elems) {
elems.value.forEach(function(element) {
client.elementIdClick(element.ELEMENT)
})
};
client.elements('css selector', 'button.my-button.to-iterate', iter);
Run Code Online (Sandbox Code Playgroud)
element都是表单的JSON对象{ ELEMENT: string }(因此,本身没有方法。)this在forEach不不指向element,也不client:你需要调用client.elementIdClick()或会得到一个TypeError。希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
11310 次 |
| 最近记录: |