我有一个看起来像这样的夜班测试,我试图确认单击我的登录页面的“密码到文本”功能是否有效:
'Test Password Visible': function (client) {
client
.url('http://127.0.0.1:8000/test')
.waitForElementVisible('body', 1000)
.assert.visible('#id_password')
.assert.visible('#eye_button')
.pause(1000)
client.assert.attributeEquals("#id_password", "type", "password");
client.execute(function () {
document.querySelector('#eye_button').click()
console.log('clicked')
}, []);
client.assert.attributeEquals("#id_password", "type", "text");
},
#eye_button
是一个div
包含 JS 控制的<i>
元素,显示密码字段是type=text
或type=password
我是 Nightwatch 的新手,但查看其他帖子,这应该可以让 div 被点击,注意.click()
由于元素不是交互式的,该方法不起作用。
client.execute(function () {
document.querySelector('#eye_button').click()
console.log('clicked')
}, []);
但是它没有,我什至在测试运行时都没有得到console.log,有人可以帮我指出正确的方向吗?
失败的行在这里是因为(我假设)没有单击 div 并且没有调用转换密码字段的 JS:
client.assert.attributeEquals("#id_password", "type", "text");