我正在使用leadfoot实习生框架编写功能测试用例。 测试用例:输入表单字段,然后单击一个按钮,打开一个自举模式。我要做的就是验证模态中存在的元素的显示属性。
但是当我尝试通过id'viewBtn'找到元素时,它找不到它并抛出: NoSuchElement:[POST http://localhost:4444/wd/hub/session/e23a975b60188479d599d2 43505ce9cb / element / 0.1521919297986265-4 / element / {“using”:“id”,“value”:“viewBtn tBtn“}]没有这样的元素:无法定位元素:{”method“:”id“,”selector“:”viewBtn “}
define(function (require){
var registerSuite = require('intern!object');
var assert = require('intern/chai!assert');
registerSuite({
name:'Test Page',
'Continue':function(){
return this.remote
.get(require.toUrl('http://sdfsdfs'))
.setFindTimeout(5000)
.findById('to')
.click()
.type('john')
.end()
.findById('from')
.click()
.type('man')
.end()
.findById('message')
.click()
.type('hello')
.end()
.findByCssSelector("[name=formName]").findByClassName('btn')
.click()
.end()
.setFindTimeout(5000)
.findById('viewBtn')
.isDisplayed()
.then(function(text){
assert.equal(text,'true','Not Displayed');
})
}
});
})
为什么在元素中存在id时会抛出错误。我也在每个查找方法后调用结束方法。?
答案 0 :(得分:1)
看起来您可能没有在正确的上下文中搜索。在下面的代码段中,两个查找和end
之间只有一个findById
。这意味着调用点findById('viewButton')
的上下文是名为“formName”的元素(因此findById
仅在name =“formName”元素内/下搜索),因为只有{ {1}}来电已结束:
findByClassName
要搜索整个文档(假设是意图),请调用.findByCssSelector("[name=formName]").findByClassName('btn')
.click()
.end()
.setFindTimeout(5000)
.findById('viewButton')
以结束两个查找。
另外,请注意end(2)
是持久性的,因此除非您更改值,否则只需要调用一次。