我对量角器很新,面对问题点击量角器中'li'ng-repeat内的对象。任何建议都会有很大帮助...
我在spec.js中的代码,它拉起页面,登录&获得冠军的成功。但未能单击对象“LOG FETCH TOOLS”。 msg“失败:找不到使用定位器的元素:By(link text,LOG FETCH TOOLS)”
describe('Tools Home Page', function() {
beforeEach(function() {
return browser.ignoreSynchronization = true;
});
this.title = 'Diagnostic Tools';
it('should have a title', function() {
browser.driver.get('https://URL');
browser.ignoreSynchronization = true;
browser.driver.findElement(by.id('username')).sendKeys('user');
browser.driver.findElement(by.id('password')).sendKeys('pass123');
browser.driver.findElement(by.name('login')).click();
browser.waitForAngular();
expect(browser.getTitle()).toContain('Diagnostic Tools');
element(by.linkText("LOG FETCH TOOLS")).click();
});
});
对象位置:
<i><li ng-repeat="(key, value) in tools | groupBy: 'group'" class="ng-scope">
<a href="#" data-toggle="collapse" data-target="#group-0" ng- click="toggleIcon($index)" class="ng-binding collapsed">
<i id="grp-0" class="fa fa-plus-circle" ng-class="collapseBtn ? 'fa-minus-circle' : 'fa-plus-circle'" style=""></i>
LOG FETCH TOOLS
</a>
<ul id="group-0" class="nav nav-second-level group collapse" style="height: 0px;">
<!-- ngRepeat: tool in value | orderBy: 'disp_name' | filter: search --><li id="tool-40" ng-repeat="tool in value | orderBy: 'disp_name' | filter: search" class="ng-scope">
<a ui-sref="tools.detail({id: tool.id})" ui-sref-active="selected" title="Crawl Logs From Ep Till Smm:- This tool crawls log starting from the entered Entry Point IP till it reaches the SMM machines." class="ng-binding" href="#/tools/detail/40">
Crawl Logs From Ep Till Smm
</a>
答案 0 :(得分:0)
而不是by.linkText
尝试使用by.partialLinktext
。锚标签可能在其中有一些前导空格。所以bylinklink在这种情况下不会起作用。
答案 1 :(得分:0)
对于此类情况,您应该使用cssContainingText
-
element(by.cssContainingText('a[href="#"]', 'LOG FETCH TOOLS')).click();
试一试它应该有效!