无法单击WebElement列表中的WebElement鼠标悬停上的播放按钮 - 使用宁静和webdriver

时间:2017-01-11 11:33:27

标签: selenium-webdriver cucumber-serenity

我使用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(图片),播放按钮会重叠。

我正在使用的代码

 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));

尝试了很多东西来获得正确的播放按钮定位器,但所有尝试都失败了。我无法理解我在哪里做错了。

请建议如何点击播放按钮。

由于

0 个答案:

没有答案