使用Protractor通过className定位按钮

时间:2015-02-23 18:19:31

标签: javascript angularjs jasmine protractor

如果这是一个新手问题,我很抱歉,刚开始进行网络自动化测试。

我想测试登录屏幕页面。查找名称和密码文本字段很简单(只使用 by.model ),但是我在使用我的脚本找到登录按钮时遇到问题。

我google了,我应该能够通过className使用元素(by.css(.className))找到一个元素,但是这无法工作,我总是得到{{1} }。

知道我做错了吗?

提前谢谢你,

LoginBtn HTML:

NoSuchElementError: No element found using locator: By.cssSelector(".btn btn-lg btn-primary btn-block")

我的代码:

<button class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>

2 个答案:

答案 0 :(得分:20)

如果要检查多个班级,请用点分隔:

by.css('.btn.btn-lg.btn-primary.btn-block')

虽然,我会按文字找到按钮 - 看起来更可靠和可读:

by.xpath('//button[. = "login"]')

另外,考虑将按钮分配为id(如果这在您的控制之下)属性以简化测试过程:

<button id="submitButton" class="btn btn-lg btn-primary btn-block" type="submit" ng-disabled="loading">login</button>

然后,它会像以下一样简单:

by.id('submitButton')

答案 1 :(得分:4)

您也可以只使用一个类来查找定位器

by.css('.btn-primary')

按班级名称

by.className('btn-primary')