如何使用Selenium WebDriver和Java鼠标悬停在webelement上

时间:2013-02-04 17:59:21

标签: java selenium-webdriver

如何使用Selenium Webdriver执行鼠标悬停功能?

测试用例就像是说,打开雅虎网站,登录旁边有链接(Mail)。 鼠标悬停时会显示工具提示。

当我尝试下面的代码时,它不是鼠标悬停在确切的位置,而是在其他地方徘徊。我哪里错了?

还让我知道,如何捕获工具提示?

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;


public class Sample 
{
    public static void main(String[] args) 
    {
        WebDriver driver=new FirefoxDriver();
        driver.get("http://www.yahoo.com");

        driver.manage().window().maximize();

        try 
                {
            Thread.sleep(5000);
        } catch (InterruptedException e)
                {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        WebElement lMail=driver.findElement(By.xpath("//*[@title='Mail']"));

        Actions builder=new Actions(driver);
        builder.moveToElement(lMail).build().perform();


    }

}

3 个答案:

答案 0 :(得分:5)

Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();

答案 1 :(得分:1)

试用此代码:

//Assume driver initialized properly.
WebElement element = driver.findElement(By.id("Element id"));
Locatable hoverItem = (Locatable) element;
Mouse mouse = ((HasInputDevices) driver).getMouse();
mouse.mouseMove(hoverItem.getCoordinates());

答案 2 :(得分:0)

我使用了类似的代码,它对我有用。 我也在几个地方使用了以下内容: browser.executeScript( “jQuery的( 'mycss选择器')鼠标悬停();”) 您将不得不使用css-selector而不是xpath。