2015-02-06 49 views
0

我有一个菜单有 (列表)元素,鼠标悬停特定标签后启用。硒 - 无法点击动态可见菜单

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”链接。虽然手动检查元素可见

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> 
+0

当您删除鼠标悬停时,该元素是否会再次隐藏? – 2015-02-06 10:19:35

+0

是的......一旦鼠标悬停被删除,元素会再次隐藏。 – br001 2015-02-06 10:23:11

+0

您可以使用xpath来查找这两个元素吗?注销按钮和帐户链接? – 2015-02-06 10:27:22

回答

1

请使用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(); 

我认为类/身份证重复其他元素也为样式目的。所以Xpath最好找到独特的元素。