单击Selenium 2.33 Java中的隐藏菜单项

单击Selenium 2.33 Java中的隐藏菜单项,java,selenium,webdriver,Java,Selenium,Webdriver,我有一个菜单元素,只有在单击时才会弹出,然后在失去焦点时消失。我的任务是单击隐藏的子菜单项。 根据之前对类似情况的回答,我使用以下代码单击子菜单项 Actions builder = new Actions(driver); WebElement mainMenuElement= driver.findElement(By.id("Mainmenu")); builder.moveToElement(mainMenuElement).build().perform(); mainMenu

我有一个菜单元素,只有在单击时才会弹出,然后在失去焦点时消失。我的任务是单击隐藏的子菜单项。 根据之前对类似情况的回答,我使用以下代码单击子菜单项

 Actions builder = new Actions(driver);
 WebElement mainMenuElement= driver.findElement(By.id("Mainmenu"));
 builder.moveToElement(mainMenuElement).build().perform();
 mainMenuElement.click();
 Thread.sleep(2000);
 WebElement mySubMenu=driver.findElement(By.xpath("//a[text()='Kit Components']"));
 mySubMenu.click();
但是,当我在ChromeV27中运行代码时,大约每三次就有一次子菜单项不会被点击。主菜单将打开并永远保持静止。但是子菜单.click()每次都会执行,没有异常,并且子菜单也可见

这是因为我的代码吗?或 这可能是因为子菜单项有一个用于单击的本地化区域?i、 e手动单击子菜单时,单击仅对文本有效,而不对元素的剩余空白区域有效

Im使用selenium 2.33 Java和chrome v 27


任何建议都会非常有用,谢谢。

首先,请不要在代码中使用
线程。睡眠
。曾经相反,使用

现在,为了回答你的问题,你似乎偶然发现了一些人称之为“挡板”或“薄片测试”的东西。如果你的测试失败了三分之一左右,那就真的很糟糕了


我偶尔会注意到,click函数并不总是执行实际的click(即使代码中的每个指示都表示它执行了)。我想知道你是不是在这件事上?通常我会做一个检查,看看点击是否发生。如果它尝试在代码中单击,但什么也没有发生,我会让它重试单击。如果重试不起作用,那么一定是出了问题。

谢谢您的建议。我想每当我把鼠标指针留在网页内时,点击就不起作用了。现在我使用JScript Executor来点击。到目前为止,它工作正常。