Javascript 使用函数getElementsByTagName-NightwatchJS获取具有动态ID的元素时出现问题
我正在尝试使用Javascript 使用函数getElementsByTagName-NightwatchJS获取具有动态ID的元素时出现问题,javascript,automated-tests,nightwatch.js,getelementsbytagname,Javascript,Automated Tests,Nightwatch.js,Getelementsbytagname,我正在尝试使用NoghtwatchJS进行自动测试 我正在处理一个包含具有动态ID的元素的UI。我必须点击一个特定的元素。我正在考虑在mycase中使用GelementByTagname('aria-label')。这是我使用的代码: var labels,i labels = getElementsByTagName('aria-label'); for ( i = 0; i < labels.length; i++) { if (labels[i].htmlFo
NoghtwatchJS
进行自动测试
我正在处理一个包含具有动态ID的元素的UI。我必须点击一个特定的元素。我正在考虑在mycase中使用GelementByTagname('aria-label')
。这是我使用的代码:
var labels,i
labels = getElementsByTagName('aria-label');
for ( i = 0; i < labels.length; i++) {
if (labels[i].htmlFor == 'Next') {
var elem = getElementById(labels[i].htmlFor)
};
};
在夜视中实现这一功能的唯一方法是使用comand 您的代码应该如下所示:
browser.execute(function() {
return document.getElementsByTagName('aria-label').length;
}, function(result) {
for (let i = 0; i < result.value; i++) {
if (labels[i].htmlFor == 'Next') {
let elem = getElementById(labels[i].htmlFor)
};
});
browser.execute(函数(){
return document.getElementsByTagName('aria-label')。长度;
},函数(结果){
for(设i=0;i
你真的有
元素吗?或者另一个元素,比如
,
,
…以aria标签
作为属性值?你能展示一个你试图找到的代表性HTML的片段吗?你好,大卫,谢谢你的回复。在下面找到我试图找到的代码片段n:NextHello David,我按照你的想法,发现我不需要getElementByTagName,为此,我用它的类名搜索元素,并试图从那里得到我想要的,直到现在我使用的代码是:labels=document.getElementsByClassName('slick-next slick arrow')console.log(labels.item(3).getAttribute('aria-label'))您好Lucas您的回答让我找到了正确的代码。事实上,我使用此函数能够在浏览器本身上执行方法。然而,getElementsByTagName不是我需要的函数,因为我遵循David的上述想法。我使用类名访问元素。我仍然在做这件事,因为我不太清楚如何使用它处理属性。非常感谢你的帮助。这让我更容易
browser.execute(function() {
return document.getElementsByTagName('aria-label').length;
}, function(result) {
for (let i = 0; i < result.value; i++) {
if (labels[i].htmlFor == 'Next') {
let elem = getElementById(labels[i].htmlFor)
};
});