量角器click()没有按预期工作,我做错了什么?

时间:2015-05-07 14:18:03

标签: javascript jasmine protractor

鉴于:使用此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();'中断我看到了..

enter image description here

我甚至尝试提交表单而不是将按钮置于按钮...

    var af = element.all(by.name('loginForm'));
        af.submit();
    });

结果是一样的......

1 个答案:

答案 0 :(得分:0)

此问题的根本原因是表单提交的内容错误。这只能通过在表单提交上查看网络级别响应来看到,实质上,点击是有效的,只是页面没有做任何事情。登录表单的开发人员没有在应用程序中公开任何登录错误。

所以我研究了如何使用量角器获取http响应代码并且不支持它,因为Selenium团队已经确定它不是计划的一部分。因此,从量角器的角度来看,你唯一的选择就是放入正确的期望陈述,如果它没有“到达那里”就不通过测试。

我还能够确定上面的屏幕截图是Seleneium WebElement类的结构。因为Selenium只是Asynchronous,所以上面看到的只是方法,因为它是返回属性和/或函数调用结果的promise。