我有一个Google Polymer Project,我正在尝试使用Intern实现功能测试,可在此处找到:
我正在尝试测试的代码位于Shadow DOM中,因为该页面使用了各种Web组件。测试的主要目标是填写表格并发布数据。代码的结构如下:
<app>
#shadow-root
<login-form>
#shadow-root
<card>
#shadow-root
<paper-input>
#shadow-root
<iron-input>
email
</iron-input>
</paper-input>
<paper-input>
#shadow-root
<iron-input>
password
</iron-input>
</paper-input>
<paper-button>
submit
</paper-button>
</card>
</login-form>
</app>
“#shadow-root”表示代码在浏览器中的表示方式。
我用过
document.querySelector('app').document.querySelector('login-form')...etc
访问特定元素,但无法找到单击元素的方法,键入字段,并在完成后单击提交按钮。在实习生有什么办法吗?
答案 0 :(得分:0)
我认为你应该看看intern-examples知道如何用Intern编写功能测试
例如,here是您应该如何编写测试(打开网址,按ID查找元素,点击元素,输入内容......)
define([
'intern!object',
'intern/chai!assert',
'require'
], function (registerSuite, assert, require) {
var url = '../../index.html';
registerSuite({
name: 'Todo (functional)',
'submit form': function () {
return this.remote
.get(require.toUrl(url))
.findById('new-todo')
.click()
.pressKeys('Task 1')
.pressKeys('\n')
.pressKeys('Task 2')
.pressKeys('\n')
.pressKeys('Task 3')
.getProperty('value')
.then(function (val) {
assert.ok(val.indexOf('Task 3') > -1, 'Task 3 should remain in the new todo');
});
}
});
});