【发布时间】:2014-05-07 19:26:12
【问题描述】:
我有一个下拉菜单,其标记如下:
<li>
<a href="#">Services</a>
<div class="menu-drop">
<a href="#">Service 1</a>
<a href="#">Service 2</a>
</div>
</li>
<li>
<a href="#">Operations</a>
<div class="menu-drop">
<a href="#">Operation 1</a>
<a href="#">Operation 2</a>
</div>
</li>
“服务”和“操作”链接是菜单项,将鼠标悬停在其上会弹出一个带有两个子菜单项的下拉 div。
现在,如果我必须使用 WebDriver 来单击“服务 1”链接,我必须将鼠标悬停在“服务”菜单选项上,然后单击“服务 1”。
我正在使用以下代码进行此操作:
WebElement menu = driver.findElement(By.linkText("Services"));
Actions builder = new Actions(driver);
builder.moveToElement(menu).build().perform();
WebElement li = menu.findElement(By.xpath("ancestor::li"));
WebElement menuDrop = li.findElement(By.className("menu-drop"));
WebElement subMenuLink = menuDrop.findElement(By.linkText("Service 1"));
subLink.click();
顺便说一句,我使用 Eclipse 来开发我的框架。
现在,上面的代码工作得很好,只有当我在 Eclipse 中调试它时。意思是,我在这里给出的代码-sn-p 的第一行旁边有一个断点,然后按 F6 并继续这样做,它工作得很好。
但是当我不这样做时,也就是说,当我在没有断点的情况下运行代码时,它就不起作用了。发生的情况是,执行了悬停,但只持续了几分之一秒,以下行
WebElement subMenuLink = menuDrop.findElement(By.linkText("Service 1"));
返回无此类元素异常。
可能是什么问题?
【问题讨论】:
标签: java selenium-webdriver webdriver mouseover