【问题标题】:Selenium web driver / java / hover + clickSelenium 网络驱动程序 / java / hover + click
【发布时间】:2014-04-30 13:51:04
【问题描述】:

我希望单击一个菜单链接,但只有当光标悬停在它上方并拉伸下拉菜单时才会显示该链接。因此,自动化无法像通常使用我的点击功能那样点击它。我做了一些研究并使用了moveToElementclickAndHold。后者给了我一些希望,但远非完美。我发现它有一半时间都没有点击,有时它确实点击了,但点击了下拉菜单中的不同菜单链接。有什么想法可以让它 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();
    }
}    

谢谢。

【问题讨论】:

  • 你能把下拉菜单的 HMTL 贴出来吗?

标签: java selenium selenium-webdriver


【解决方案1】:

请尝试以下方法:

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

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

【讨论】:

  • 感谢您的回复。我充满希望,但它没有奏效。我尝试了这两个:act.moveToElement(tab).moveToElement(link).click(link).perform(); act.moveToElement(tab).clickAndHold(tab).moveToElement(link).click(link).perform();
  • 请用act.moveToElement(tab).moveToElement(link).click(link).build().perform();再试一次,在此我添加了build()方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多