我来自Java世界,所以我与Nightwatch有点挣扎。我有一个用例,我在页面上获取所有id的列表,如果它匹配某个id,它应该点击它并退出循环。但是我已经尝试了不同的东西来退出循环,比如返回,休息,甚至包裹尝试捕获但仍然没有运气。如果它是普通的javascript以上标准应该退出循环。我的代码是:
browser.elements('css selector', `article${cardElement}`, function (res) {
for (let elem of res.value) {
browser.elementIdAttribute(elem.ELEMENT, 'data-id', function (idResult) {
let id = idResult.value;
if(id == '1018925') {
browser.elementIdClick(elem.ELEMENT);
return true;//tried break here as well
}
})
}
})
有什么建议吗?
答案 0 :(得分:0)
您可以使用id作为css选择器的一部分添加元素的选择:
article${cardElement} [data-id='1018925']
但是,您评论的是动态设置它。因此,还有其他更适合的功能,例如perform
。
添加到浏览器的任何通话仍然会在队列中按顺序运行,因此您仍然可以在browser.elementIdClick(elem.ELEMENT);
来电中运行perform
答案 1 :(得分:0)
如果添加了“success”变量,如果返回true则会中断,该怎么办?
jQuery('area').each(function(){
var text = jQuery(this).attr('title'),
link = jQuery(this).attr('href'),
place = jQuery(this).attr('coords').toString(),
left = place.split(",")[0],
top = place.split(",")[1],
right = place.split(",")[2],
bottom = place.split(",")[3];
jQuery('<a href="'+link+'" style="position: absolute; top: '+top+'px; left: '+left+'px; background: white; border: 1px solid;">'+text+'</a>').appendTo('.entry-content');
//console.log(text + ' ' + link + ' ' + place + ' ' + left + ' ' + top + ' ' + right + ' ' + bottom);