使用量角器查找元素(单击登录按钮)

时间:2016-04-13 18:56:25

标签: protractor

如何在量角器中找到单击按钮(登录按钮)的元素....我输入了登录名和密码但没有点击我的“登录”按钮。我的代码没有用于登录部分的模型,转发器,ID或类来进入App 在此先感谢您的帮助。我可以格式化实际代码,以便我可以使用Protratcor运行吗?

以下是我的代码:

<div class="btn-panel">
div>
<div ng-show="loginAsAdmin" hs-gesture="{handler: goToPin}" class="ng-hide">
<i class="icon-back-round"></i>
</div>
!--<div class="brad-all attention" hs-gesture="{handler: clearLogin}">
 i class="icon-close-round"></i>
 </div>-->
 <div class="btn-ok" hs-gesture="{handler: doSubscribe}" localize="(!canSubscribe || loginAsAdmin) ? 'Log In' : 'Subscribe'">Log In</div>
 </div>
</div>
<div ng-show="loginAsAdmin" hs-gesture="{handler: goToPin}" class="ng-hide">
 <i class="icon-back-round"></i>
 </div>
<div class="btn-ok" hs-gesture="{handler: doSubscribe}" localize="(!canSubscribe || loginAsAdmin) ? 'Log In' : 'Subscribe'">Log In</div>

3 个答案:

答案 0 :(得分:0)

@kevin假设

' <div class="btn-ok" hs-gesture="{handler: doSubscribe}" localize="(!canSubscribe || loginAsAdmin) ? 'Log In' : 'Subscribe'">Log In</div> </div>'

是包含登录按钮的标记,也只是单击是您需要的。以下可能适合您:

element(by.xpath("//div[contains(@class,'btn-ok') and contains(text(),'Log In')]")).click();

答案 1 :(得分:0)

您可以使用element(by.className('btn-ok'))element(by.css('.btn-ok'))通过className选择它,然后只需在最后输入.click()即可:

element(by.css('.btn-ok')).click();$('.btn-ok').click()

答案 2 :(得分:0)

为将来的用户编辑 (此命令是一种解决方法,而不是直接解决他未找到/点击按钮的原始问题)

您也可以尝试按Enter键提交表单(您可能希望在密码字段内执行此操作) - browser.driver.actions().sendKeys(protractor.Key.ENTER).perform();

另一个编辑:这也发生在我身上 - 还有另一个模拟点击事件的选项:browser.driver.actions().mouseDown(loginBtn).mouseUp().perform();

原帖

你说你的代码没有ID或类,但我看到你的登录链接有'btn-ok'类?也许我误解了你可以尝试使用cssContainingText:

var loginBtn = element(by.cssContainingText('.btn-ok', 'Log In');
loginBtn.click();

这将使用指定字符串'Log In'找到具有'btn-ok'类的元素

来源:https://angular.github.io/protractor/#/api?view=ProtractorBy.prototype.cssContainingText