我有两个嵌入式 <span>
<a>
中的元素元素。我需要在第二个 <span>
上触发点击事件. by.id
id
上的方法我创建的类没有触发点击。我也试过by.binding
那没有用。请帮助?
代码:
<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();
我们也可以wait for the element to be visible :
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();
或者,scroll into view点击前:
browser.executeScript("arguments[0].scrollIntoView();", addPlayer.getWebElement());
addPlayer.click();
您也可以filter与定位器匹配的可见元素:
var addPlayer = $$("#invite-player").filter(function (elm) {
return elm.isDisplayed();
}).first();
addPlayer.click();
关于javascript - Protractor 无法点击 <a> 元素内的嵌入 <span>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561999/