2

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

测试用例就像说,打开雅虎网站,登录旁边有链接(邮件)。鼠标悬停时,它将显示一个工具提示。

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

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

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


    }

}
4

3 回答 3

5
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();
于 2013-02-05T13:20:57.487 回答
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());
于 2013-02-05T06:11:31.460 回答
0

我使用了类似的代码,它对我有用。我还在几个地方使用了以下内容: browser.executeScript("jQuery('mycss-selector').mouseover();") 您将不得不使用 css-selector,而不是 xpath。

于 2013-02-08T19:29:52.957 回答