请耐心等待 - 我是编程初学者。很长一段时间的测试员,但编程不是我的领域。
我的测试是:
- 从后端我得到一些包含一些元素的列表(例如 5 个文本字符串)
- 我单击页面上显示这 5 个元素的某些元素(当然我不知道列出的元素是否正确)
- 我需要检查 ui 上显示的元素列表是否是从后端收到的列表
问题:
- 我无法通过 Nightwatch api css 选择器访问元素,至少我无法使用 Nightwatch 管理(Angular 应用程序)
- 我发现我可以做到
.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] 进行查询 - 通过对象元素进行迭代。如果我跳过
[app].innerText
,我会得到一些像element-6066-11e4-a52e-4f735466cecf 这样的数据,而不是页面上显示的文本值
我得到错误:
运行 .executeScript() 协议操作时出错:TypeError: document.getElementsByClassName(...)[app] is undefined
是否可以将“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”文本。