鉴于:使用此html和js代码进行量角器测试。能够做browser.get并点击链接成功登录页面。登录表单需要从测试中正确输入的用户标识和密码,但我无法单击该按钮。
<button type="submit" class="button positive">Log In</button>
element.all(by.buttonText('Log In')).then(function (item) {
item.forEach(function (final) {
final.submit();
final.click();
});
如果我在ForEach语句中设置了一个断点,我看到'item'确实是一个长度为1的数组。然后我在'final.submit();'中断我看到了..
我甚至尝试提交表单而不是将按钮置于按钮...
var af = element.all(by.name('loginForm'));
af.submit();
});
结果是一样的......
答案 0 :(得分:0)
此问题的根本原因是表单提交的内容错误。这只能通过在表单提交上查看网络级别响应来看到,实质上,点击是有效的,只是页面没有做任何事情。登录表单的开发人员没有在应用程序中公开任何登录错误。
所以我研究了如何使用量角器获取http响应代码并且不支持它,因为Selenium团队已经确定它不是计划的一部分。因此,从量角器的角度来看,你唯一的选择就是放入正确的期望陈述,如果它没有“到达那里”就不通过测试。
我还能够确定上面的屏幕截图是Seleneium WebElement类的结构。因为Selenium只是Asynchronous,所以上面看到的只是方法,因为它是返回属性和/或函数调用结果的promise。