【问题标题】:Clicking on Hidden Menu Item in Selenium 2.33 Java单击 Selenium 2.33 Java 中的隐藏菜单项
【发布时间】:2013-06-13 08:08:58
【问题描述】:

我有一个菜单元素,它仅在单击时弹出,然后在失去焦点时淡出。我的任务是单击隐藏的子菜单项。 从以前对类似情况的回答中,我使用以下代码单击子菜单项。

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

但是,当我在 chrome v 27 中运行代码时,大约三倍左右,子菜单项永远不会被点击。主菜单打开并永远保持静止。但是 submenu.click() 每次都会执行,没有异常,并且子菜单也是可见的。

这是因为我的代码吗?或者 这可能是因为子菜单项具有单击的本地化区域吗?即当我手动单击子菜单时,单击仅适用于文本,而不适用于元素的剩余空白区域。

我正在使用 selenium 2.33 Java 和 chrome v 27。

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

【问题讨论】:

    标签: java selenium webdriver


    【解决方案1】:

    首先,请不要在您的代码中使用Thread.sleep曾经。相反,请使用FluentWait or WebDriverWait commands

    现在,为了回答您的问题,您似乎偶然发现了一些人所说的“flapper”或“flakey test”。如果你的测试失败了三分之一左右,那就是真的很糟糕。

    我时不时注意到 click 函数并不总是执行实际的点击(即使代码中的每个指示都表示确实如此)。我想知道你是否正在发生这种情况?通常我会检查一下点击是否发生。如果它尝试点击代码但没有任何反应,我会让它重试点击。如果重试不起作用,那么确实有问题。

    【讨论】:

    • 感谢您的建议。每当我将鼠标指针留在网页内时,我认为单击不起作用。现在我正在使用 JscriptExecutor 进行单击。到目前为止它工作正常。
    猜你喜欢
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 2018-12-05
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    相关资源
    最近更新 更多