在protracror中找不到用于点击下方角度代码的元素

时间:2017-11-16 13:06:30

标签: javascript jquery protractor

任何人都可以建议我如何获取元素以及如何使用下面的代码点击它

<span class="referFriendsClass">
    <p-menu class="refereFrnd" #refereFrndMenu popup="popup" [model]="items"></p-menu>
    <button #btn type="button" class="refereFrnd"  (click)="refereFrndMenu.toggle($event)"><i class="fa fa-users"></i></button>
</span> 

我尝试使用以下代码,但收到错误

let footer = element(by.css('div[class="ui-g"]'));
footer.element(by.tagName('i')).click();
  

错误:失败:未知错误:元素&lt; i _ngcontent-c1 =“”class =“fa fa-user”&gt;&lt; / i&gt;在点(1079,52)处不可点击。其他元素将收到点击:&lt; div _ngcontent-c5 =“”class =“modal-content”&gt; ...&lt; / div&gt;
  (会议信息:chrome = 62.0.3202.94)
  (驱动程序信息:chromedriver = 2.33.506120(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform = Windows NT 10.0.15063 x86_64)

2 个答案:

答案 0 :(得分:0)

您应该使用预期条件(http://www.protractortest.org/#/api?view=ProtractorExpectedConditions):

var EC = protractor.ExpectedConditions;
var footer = element(by.css('div[class="ui-g"]'));
var isDisplayed = EC.visibilityOf(footer);

...

browser.wait(isDisplayed, 5000);

答案 1 :(得分:0)

您收到错误Other element would receive the click: <div _ngcontent-c5="" class="modal-content">...</div>

这意味着您要选择的元素隐藏在.modal-content后面。可能页面上会出现一些模态窗口,因此您的元素不可见。

此外,您需要记住,默认情况下,Protractor(作为Selenium)尝试单击所选元素的中心。因此,即使元素的一部分在页面上可见,也可能存在这个按钮的中心重叠的情况。