如何单击“夜间监视”中元素命令返回的按钮?
client.elements('xpath', ".//a[@class='abcd')]", function (allButtons){
console.log('Element value is '+element)
allButtons.value.forEach(function (element) {
this.elementIdClick(element, function(res){});
}
}在运行时,我收到了一个错误,如
元素值是对象对象。 TypeError: Object #没有方法“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){});现在错误是
Element value is [object Object]
TypeError: Cannot read property 'ELEMENT' of undefined所以再回到原来的问题。如何使用nightwatchJS从一组元素列表中获取各个元素
发布于 2015-01-15 09:13:42
以下几点对我有用:
function iter(elems) {
elems.value.forEach(function(element) {
client.elementIdClick(element.ELEMENT)
})
};
client.elements('css selector', 'button.my-button.to-iterate', iter);element都是表单{ ELEMENT: string }的JSON对象(因此,没有方法本身)。this in forEach不指向element,也不指向client:您需要调用client.elementIdClick()或将获得TypeError。希望能帮上忙。
发布于 2016-12-12 22:51:22
我使用以下策略来使用Nightwatch迭代DOM元素:
// Executing a function in the application context.
client.execute(function () {
// Get elements by CSS selector.
var elements = document.querySelectorAll('.elements');
// Iterate over them.
[].forEach.call(elements, function (element) {
// Manipulate each element.
element.click();
});
});当然,那个片段在测试中。
如果您使用jQuery或类似的东西,您也可以使用它。
发布于 2015-10-27 20:29:31
我认为错误是由console.log()语句生成的。
从元素()命令中,allButtons.value将是多个对象的数组。要访问该数组中的密钥对,需要指定数组中的位置,然后引用对象:allButtons.value[index].ELEMENT
因为您只给了.forEach()循环一个arg,所以它将其解释为array的index,在下面的代码示例中,为了清晰起见,我用index替换了局部变量element。也不需要使用.elementIdAttribute()函数;allButtons.value[0].ELEMENT返回的数字将用作id。
client.elements('xpath', ".//a[@class='abcd')]", function (allButtons){
allButtons.value.forEach(function (index) {
console.log('Element value is '+index.ELEMENT)
client.elementIdClick(index.ELEMENT);}})希望这能有所帮助。
https://stackoverflow.com/questions/27431450
复制相似问题