Selenium web驱动程序/java/hover+单击

Selenium web驱动程序/java/hover+单击,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我希望单击一个菜单链接,但该链接仅在光标悬停在其上方并拉伸下拉列表时才会出现。因此,自动化系统无法像我的单击功能一样单击它。我做了一些研究,并使用moveToElement和单击并按住。后者给了我一些希望,但还远远不够完美。我发现它有一半的时间都没有点击,有时它会点击,但在下拉菜单中点击不同的菜单链接。有没有办法让它100%的工作 public String hoverClick(String object, String data){ APP_LOGS.debug("Moving t

我希望单击一个菜单链接,但该链接仅在光标悬停在其上方并拉伸下拉列表时才会出现。因此,自动化系统无法像我的单击功能一样单击它。我做了一些研究,并使用moveToElement和单击并按住。后者给了我一些希望,但还远远不够完美。我发现它有一半的时间都没有点击,有时它会点击,但在下拉菜单中点击不同的菜单链接。有没有办法让它100%的工作

public  String hoverClick(String object, String data){
    APP_LOGS.debug("Moving the mouse");
    try{
        WebElement tab;
        WebElement link;
        tab = driver.findElement(By.xpath("//a[contains(@href, 'FOO')]"));                                  
        link = driver.findElement(By.xpath("//a[contains(@href, 'BAR')]"));

        Actions act = new Actions(driver);
        act.clickAndHold(tab).click(link).perform();
        return Constants.KEYWORD_PASS;
    }catch(Exception e){
        return Constants.KEYWORD_FAIL+"Unable to move the mouse/click"+e.getMessage();
    }
}    

谢谢。

请尝试以下内容:

act.moveToElement(tab).moveToElement(link).click(link).perform();

在这里,我们将鼠标悬停在填充下拉列表的元素上,该元素包含要单击的元素,然后移动到要单击的元素上,然后单击它。

您能发布下拉列表的HMTL吗?谢谢您的回复。我很有希望,但没有成功。我尝试了以下两种方法:act.moveToElementtab.moveToElementlink.clicklink.perform;act.moveToElementtab.clickAndHoldtab.moveToElementlink.clicklink.perform;请使用act.moveToElementtab.moveToElementlink.clicklink.build.perform重试;在本文中,我添加了构建方法。