3 javascript angularjs selenium-webdriver protractor
我在<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>
Run Code Online (Sandbox Code Playgroud)
我们可以玩定位器:
$("div.add-player a span").click();
$("#invite-player").click();
element(by.xpath("//span[. = 'Add Player']")).click();
Run Code Online (Sandbox Code Playgroud)
我们还可以等待元素可见:
var addPlayer = $("div.add-player a span"),
EC = protractor.ExpectedConditions;
browser.wait(EC.visibilityOf(addPlayer), 5000);
addPlayer.click();
Run Code Online (Sandbox Code Playgroud)
我们也可以尝试通过JavaScript点击:
browser.executeScript("arguments[0].click();", addPlayer.getWebElement());
Run Code Online (Sandbox Code Playgroud)
或者通过browser.actions()
:
browser.actions().mouseMove(addPlayer).click().perform();
Run Code Online (Sandbox Code Playgroud)
或者,在点击之前滚动到视图:
browser.executeScript("arguments[0].scrollIntoView();", addPlayer.getWebElement());
addPlayer.click();
Run Code Online (Sandbox Code Playgroud)
您还可以过滤与定位器匹配的可见元素:
var addPlayer = $$("#invite-player").filter(function (elm) {
return elm.isDisplayed();
}).first();
addPlayer.click();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3651 次 |
最近记录: |