hny*_*015 3 javascript testing angularjs selenium-webdriver protractor
<div class="base-view app-loaded" data-ng-class="cssClass.appState">
<div class="ng-scope" data-ng-view="">
<div class="ng-scope" data-ng-include="'partial/navigation/navigation.tpl.html'">
<div class="feedback-ball feedback-ball-show feedback-ball-big" data-ng-class="feedback.cls" data-ng-click="outside($event)" data-feedback-ball="">
<span class="close-button"></span>
<h2 class="ng-binding">Welcome to Garbo</h2>
<div class="ng-scope ng-binding" data-ng-bind-html="feedback.html" data-ng-if="feedback.html">
<p>Here you can play in style in a safe and secure environment.</p>
<p>
<a class="btn" href="/account">My Account</a>
<a class="btn" href="/deposit">Deposit</a>
</p>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我想在data-ng-bind-html ="feedback.html"中找到并点击/ account按钮,我可以找到data-ng-bind-html ="feedback.html",但我找不到其中的帐户按钮.当我尝试查找帐户按钮时,它会给我一个错误,即该页面有多个帐户按钮,因此更具体.
我尝试了元素.().element()但它没有用,请帮忙
element可以将调用链接到其他元素中查找元素,因此您的element().element()解决方案应该有效.
或者,您可以构造一个xpath表达式来到达相应内部的链接div:
element(by.xpath('//div[@data-ng-bind-html = "feedback.html"]//a[@href = "/account"]'))
Run Code Online (Sandbox Code Playgroud)
小智 6
问题在于,webDriver正在查找多个匹配的元素。您可以使用element来查找一个元素,用element.all来获取元素数组,然后可以使用.get()和元素索引,或者使用first()或last()。你可以做,
element(by.css('[data-ng-bind-html="feedback.html"]')
.element(by.cssContainingText('.btn', 'My account'));
Run Code Online (Sandbox Code Playgroud)
如果不起作用,则可能有多个,如果可以,则可以使用,
element(by.css('[data-ng-bind-html="feedback.html"]')
.all(by.cssContainingText('.btn', 'My account')).first();
Run Code Online (Sandbox Code Playgroud)
但是在HTML中,您将有多个按钮,webDriver将仅获得一个按钮,另一件事是,使用count()可以使您获得元素数组的长度,并且您可以知道有多少个按钮。
| 归档时间: |
|
| 查看次数: |
20940 次 |
| 最近记录: |