请耐心等待-我是编程的初学者。测试人员已经很长时间了,但是编程不是我的专长。
我的测试是:
问题:
.execute()
我的代码(失败):
browser
.click(selector.HEADER.APPS_GRID, function () {
for (var app in appsList) {
let appShortName = appsList[app].shortName
let appLongName = appsList[app].longName
let appUrl = appsList[app].url
let appVisibility = appsList[app].visibility
browser.execute(function(app){
var appShortNameDisplayed = document.getElementsByClassName('logo-as-text')[app].innerText
var appLongNameDisplayed = document.getElementsByClassName('app-name')[app].innerText
return [appShortNameDisplayed, appLongNameDisplayed]
}, function(result){
console.log(result.value[0])
})
}
})
它在以下行中失败:
var appShortNameDisplayed = document.getElementsByClassName('logo-as-text')[app].innerText
var appLongNameDisplayed = document.getElementsByClassName('app-name')[app].innerText
[app].innerText
,则会得到诸如 element-6066-11e4-a52e-4f735466cecf 之类的数据,而不是页面上显示的文本值我收到错误消息:
运行.executeScript()协议操作时出错:TypeError:document.getElementsByClassName(...)[app]未定义
是否可以将“ app”参数(计数器)传递给文档查询?
还是我必须进行一次查询以返回所需数量的数据,然后处理此块中返回的数据的方式
function(result) {
console.log(result.value[0])
})
html页面的片段是
<div _ngcontent-c8="" class="ep-app-icon mt-auto mb-auto text-center logo-as-text"> XXX </div>
...,我需要获取此“ XXX”文本。
答案 0 :(得分:0)
.executeAsync(function(){
var buttons=document.getElementsByTagName('button');
buttons[2].click();
return buttons;
},[],function(result){
console.log('done')
})
请尝试“异步”以确保其正常工作