Selenium - 无法单击动态可见菜单

Selenium - Not able to Click Dynamically Visible Menu

我有一个菜单 li (列表)在您将鼠标悬停在特定标签上后启用的元素。

    driver.get("www.snapdeal.com");   Actions actions = new Actions(driver);
    actions.moveToElement(driver.findElement(By.id("loggedOutAccount"))).build().perform();
    //Wait for 5 Secs
   driver.findElement(By.className("accountLink")).click();// Here it's throwing Element not visible exception

此代码可以正确执行鼠标悬停,但无法单击 "SignIn Link" Link。虽然手动检查元素是 Visible

DOM结构-

<div id="loggedOutAccount" class="hd-rvmp-logout">
<a class="signIn" href="javascript:void(0);">
<i class="iconHeader accountUser"></i>
<label class="my-account-lang"> My Account</label>
<i class="mar_2_left right-downArrow breadcrumbArrow-down"></i>
</a>
<div class="sdNavDropWrapper accDetails" style="display: none; z-index: 999;">
<ul class="positionAbsolute pull-right">
<li class="customLoggedInState">
<div class="left triangle"></div>
<div class="right triangle"></div>
<div>
<a class="accountLink" href="javascript:void(0);">Click here to sign in ></a>
</div>
</li>
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
<li class="stop-event">
</ul>
</div>
</div>

请为两个元素使用 xpath,如下所示:

driver.get("www.snapdeal.com");   
Actions actions = new Actions(driver);
actions.moveToElement(driver.findElement(By.xpath("yourxpathhere"))).build().perform();

driver.findElement(By.xpath("yourxpathhere")).click();

我认为 class/Id 重复其他元素也是为了样式目的。所以 Xpath 更适合查找唯一元素。