如何在量角器中找到单击按钮(登录按钮)的元素....我输入了登录名和密码但没有点击我的“登录”按钮。我的代码没有用于登录部分的模型,转发器,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>
答案 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