在Nightwatch中迭代元素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Nightwatch中迭代元素相关的知识,希望对你有一定的参考价值。

我有一个网格视图表,我想测试具有不同xpath名称的列行。例如,

Row Elements 1 - Test Value
Row Elements 2 - Test Value
Row Elements 3 - Test Value 


browser.useXpath()
browser.waitForElementVisible('//*[@id="asuccess"]', 1200000)
browser.waitForElementPresent('//*[@id="SearchListGridView_DXMainTable"]', 7000)
for (var i = 0; i < jsonObj.Sheet1.length;++i) { 
     selector = '//*[@id="SearchListGridView_DXDataRow' + i + '"]/td[4]';
    browser.expect.element(selector).text.to.contain(jsonObj.Sheet1[i].Account)
    }  

错误消息:在_combinedTickCallback处于Object.Import_Batch [作为导入批处理](C: Users Peter Wong Documents Nightwatch Volare_Admin import_manager.js:73:32)的预期元素文本(internal / process / next_tick.js: 131:7)

第73行位于browser.expect.element(selector).text.to.contain(jsonObj.Sheet1 [i] .Account)

但是回答我的错误,说文字不是元素。请帮忙。

答案

这是错误指出的,你使用的是字符串对象而不是选择器。它应该工作,如果你摆脱new String。既然你正在使用xpath,别忘了使用useXpath()

browser.useXpath().expect.element(selector).text.to.contain(jsonObj.Sheet1[i].Account)

以上是关于在Nightwatch中迭代元素的主要内容,如果未能解决你的问题,请参考以下文章

Nightwatch:等待没有通过/失败结果的元素

如何使用 nightwatch.js 或 javascript 列出具有共同属性值的相同元素?

Nightwatch测试在Headless chrome模式下找不到元素

如何使用Nightwatch.js创建新的浏览器实例

递进迭代敏捷

使用 nightwatch 检查 http 状态码