实习生框架 - LeadFoot - 无法定位元素
Intern framework - LeadFoot - unable to locate element
我正在使用 leadfoot intern 框架编写功能测试用例。
测试用例:输入表单字段并单击将打开 bootstrap 模式的按钮。我想要做的就是验证模态上存在的元素的显示 属性。
但是当我尝试通过 id 'viewBtn' 查找元素时,它找不到它并抛出:
NoSuchElement: [POST http://localhost:4444/wd/hub/session/e23a975b60188479d599d2
43505ce9cb/element/0.1521919297986265-4/元素/{"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 时会抛出错误。我也在每个 find 方法之后调用 end 方法。?
您似乎没有在正确的上下文中进行搜索。在下面的代码片段中,两个发现和 findById
之间只有一个 end
。这意味着调用点 findById('viewButton')
的上下文是名称为 "formName" 的元素(因此 findById
仅搜索 within/under 名称="formName" 元素), 因为只有 findByClassName
调用结束:
.findByCssSelector("[name=formName]").findByClassName('btn')
.click()
.end()
.setFindTimeout(5000)
.findById('viewButton')
要搜索整个文档(假设这是意图),请调用 end(2)
结束两个查找。
此外,请注意 setFindTimeout
是持久性的,因此您只需调用它一次,除非您要更改值。
我正在使用 leadfoot intern 框架编写功能测试用例。 测试用例:输入表单字段并单击将打开 bootstrap 模式的按钮。我想要做的就是验证模态上存在的元素的显示 属性。
但是当我尝试通过 id 'viewBtn' 查找元素时,它找不到它并抛出: NoSuchElement: [POST http://localhost:4444/wd/hub/session/e23a975b60188479d599d2 43505ce9cb/element/0.1521919297986265-4/元素/{"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 时会抛出错误。我也在每个 find 方法之后调用 end 方法。?
您似乎没有在正确的上下文中进行搜索。在下面的代码片段中,两个发现和 findById
之间只有一个 end
。这意味着调用点 findById('viewButton')
的上下文是名称为 "formName" 的元素(因此 findById
仅搜索 within/under 名称="formName" 元素), 因为只有 findByClassName
调用结束:
.findByCssSelector("[name=formName]").findByClassName('btn')
.click()
.end()
.setFindTimeout(5000)
.findById('viewButton')
要搜索整个文档(假设这是意图),请调用 end(2)
结束两个查找。
此外,请注意 setFindTimeout
是持久性的,因此您只需调用它一次,除非您要更改值。