Javascript 量角器-当子元素也是页面中其他地方的主元素时,如何在元素中查找元素 欢迎来到嘉宝

Javascript 量角器-当子元素也是页面中其他地方的主元素时,如何在元素中查找元素 欢迎来到嘉宝,javascript,angularjs,testing,selenium-webdriver,protractor,Javascript,Angularjs,Testing,Selenium Webdriver,Protractor,在这里,您可以在安全可靠的环境中尽情玩乐 我想找到并单击数据ng bind html=“feedback.html”中的/account按钮,我可以找到数据ng bind html=“feedback.html”,但我找不到其中的account按钮。当我试图找到帐户按钮,它给我的错误,页面有多个帐户按钮,所以要更具体 我尝试了元素。(.element(),但它不起作用,请帮助查找其他元素中的元素,这样您的元素().element()解决方案就可以了 或者,您可以构造一个xpath表达式,以

在这里,您可以在安全可靠的环境中尽情玩乐

我想找到并单击数据ng bind html=“feedback.html”中的/account按钮,我可以找到数据ng bind html=“feedback.html”,但我找不到其中的account按钮。当我试图找到帐户按钮,它给我的错误,页面有多个帐户按钮,所以要更具体

我尝试了元素。(.element(),但它不起作用,请帮助查找其他元素中的元素,这样您的
元素().element()
解决方案就可以了

或者,您可以构造一个xpath表达式,以到达相应的
div
中的链接:

<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>

问题是webDriver正在查找多个匹配的元素。元素用于查找一个元素,元素.all用于获取元素数组,然后可以使用.get()和元素的索引,或者使用first()或last()。你可以

element(by.xpath('//div[@data-ng-bind-html = "feedback.html"]//a[@href = "/account"]'))
如果它不起作用,那么您可能有多个,如果是,您可以使用

element(by.css('[data-ng-bind-html="feedback.html"]')
.element(by.cssContainingText('.btn', 'My account'));
但是在HTML中有不止一个按钮,webDriver只会得到一个,
另一件事,是使用count()来给出元素数组的长度,您可以知道您有多少元素。

没有帮助它说-element(by.xpath('//div[@data ng bind html=“feedback.html”]')。element(by.xp th(“//a[@href='/account'])警告:为locator by.xpath(//a[@href='/account'])找到多个元素-您可能需要更具体的警告:通过.xpath为定位器找到多个元素(“//a[@href='/account'])-您可能需要更具体的警告:通过.xpath为定位器找到多个元素(“//a[@href='/account']))-您可能需要更具体一些……我不明白,为什么它要求更具体一些。@hny2015好的,我可以分享页面的完整HTML源代码吗?谢谢。@hny2015是的,例如,在github上创建一个临时的
gist
。谢谢。这是HTML代码,请帮助。我发现很难找到解决方案。@hny2015好的,tha我已经更新了xpath,请重新检查。
element(by.css('[data-ng-bind-html="feedback.html"]')
.all(by.cssContainingText('.btn', 'My account')).first();