量角器无法点击嵌入式< span>在里面< a>元件 [英] Protractor can't click on embedded <span> inside <a> element

查看:76
本文介绍了量角器无法点击嵌入式< span>在里面< a>元件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在< a> 元素中有两个嵌入的< span> 元素。我需要在第二个< span> 上触发点击事件。我创建的 id 类上的 by.id 方法没有触发点击。我也试过 by.binding ,但这不起作用。请帮忙?

I have two embedded <span> elements inside an <a> element. I need to trigger a click event on the second <span>. The by.id method on the id classes I created didn't trigger a click. I also tried by.binding and that didn't work. help please?

代码:

<div class="add-player">
  <a href class="btn" data-ng-if="!currentUser.isAuthenticated && !vm.hasPendingInvitation">
    <span>Add Player</span>
  </a>
  <a href class="btn" id="invite" data-ng-if="currentUser.isAuthenticated && !vm.hasPendingInvitation">
    <span id="invite-player">Add Player</span>
  </a>
</div>


推荐答案

我们可以玩定位器:

$("div.add-player a span").click();
$("#invite-player").click();
element(by.xpath("//span[. = 'Add Player']")).click();

我们也可以等待元素可见

var addPlayer = $("div.add-player a span"),
    EC = protractor.ExpectedConditions;

browser.wait(EC.visibilityOf(addPlayer), 5000);
addPlayer.click();

我们也可以尝试点击通过JavaScript

browser.executeScript("arguments[0].click();", addPlayer.getWebElement());

或通过 browser.actions()

browser.actions().mouseMove(addPlayer).click().perform();

或者,滚动到视图中

browser.executeScript("arguments[0].scrollIntoView();", addPlayer.getWebElement());
addPlayer.click();






您还可以过滤匹配定位器的可见元素:


You can also filter the visible element matching a locator:

var addPlayer = $$("#invite-player").filter(function (elm) {
    return elm.isDisplayed();
}).first();
addPlayer.click();

这篇关于量角器无法点击嵌入式&lt; span&gt;在里面&lt; a&gt;元件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆