我使用 xpath = ".//div[@id='list']/ul/li" 得到了一个 webelement 列表
现在 li 标签有子标签
<div class="abc-box " tabindex="-1">
<div class="abc-img b-loaded" tabindex="-1" style="background-image: url("/binaries/abc.jpg");">
<a class="game-img__link" data-gameid="1569" tabindex="-1" title="abc" href="/1816/launchSocialGame.do?launch=real" rel="nofollow">abc</a>
</div>
<div class="abc-overlay" tabindex="-1">
<a class="abc-overlay__link" data-gameid="1569" href="/1816/launch.do?launch=real" tabindex="-1" rel="nofollow">Play</a>
</div>
</div>
我成功地<a>
首先进入内部<div>/<div>
以验证title="abc"
. 现在,如果title=abc
,我需要<a>
在鼠标悬停/单击列表的 webelement(image) 时单击第二个,播放按钮会被覆盖。
我正在使用的代码
public void click(String gameName) {
Webelement list=getDriver().findElement(xpath = ".//div[@id='list']/ul/li");
Iterator var2 = this.list.iterator();
while(var2.hasNext()) {
WebElement we = (WebElement)var2.next();
WebElement gameImage= we.findElement(By.tagName("a"));
if (gameImage.getAttribute("title").toLowerCase().contains(gameName.toLowerCase())) {
withTimeoutOf(SECONDS_TO_WAIT, TimeUnit.SECONDS);
(new WebElement playLink = we.findElement(By.className("abc-overlay__link")); withTimeoutOf(SECONDS_TO_WAIT, TimeUnit.SECONDS).waitFor(ExpectedConditions.visibilityOf(playLink));
playLink.sendKeys(Keys.RETURN);
clickedGame=true;
break;
}else{
clickedGame=false;
}
}
}
使用上面的代码,我得到了超时异常
withTimeoutOf(SECONDS_TO_WAIT, TimeUnit.SECONDS).waitFor(ExpectedConditions.visibilityOf(playLink));
尝试了很多方法来获得正确的播放按钮定位器,但所有尝试均未成功。我无法理解我在哪里做错了。
请建议如何点击播放按钮。
谢谢