Selenium WebDriver鼠标在Firefox上操作moveToElement

时间:2013-05-20 05:32:14

标签: selenium webdriver

我在java中编写了一个简单的代码,将鼠标指针移动到网站的菜单栏。当鼠标在“演示页面1”上移动时,其子菜单打开,然后我可以点击“演示页面4”。该代码在我的笔记本电脑上完美运行。

因为我的笔记本电脑有点慢,所以我将代码移到联想电脑上。现在,当我运行代码时,未显示打开的菜单。令人惊讶的是,鼠标在后台移动到“Demo page 1”,因为它的地址显示在状态栏中,但由于打开的菜单没有显示,我不能使用click()方法打开“Demo page 4”,因为它是看不见的。 代码在这里:

    // DemoPage11 is the xpath of "Demo Page 1" which is an item in the main menu
    String DemoPage11 = "//*[@id='access']//div[3]//ul//li[2]//a";
    // DemoPage114 is the xpath of "Demo Page 4" which is a sub-menu of "Demo Page 1"
    String DemoPage114 = "//*[@id='access']//div[3]//ul//li[2]//ul//li//a";

    ProfilesIni allProf = new ProfilesIni();
    FirefoxProfile p = allProf.getProfile("default");
    p.setEnableNativeEvents(true);
    WebDriver wd1 = new FirefoxDriver(p);

    // I use driver for scrolling the page and it works perfectly
    EventFiringWebDriver driver = new EventFiringWebDriver(wd1);        

    wd1.get("http://benchmarkazure.cloudapp.net/wordpress/");
    wd1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    Actions builder = new Actions(wd1);
    builder.moveToElement(wd1.findElement(By.xpath(DemoPage11))).build().perform();
    WebElement weDemoPage114 = (new WebDriverWait(wd1, 30)).until(ExpectedConditions.presenceOfElementLocated(By.xpath(DemoPage114)));
    wd1.findElement(By.xpath(DemoPage114)).click();
    wd1.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

不幸的是,我不允许上传图片来澄清。如果你可以帮助我,需要在我的笔记本电脑中查看结果的屏幕截图。联想电脑,请给我你的电子邮件地址,然后我会发给你。

我非常感谢您的回复,因为我必须尽快完成。 谢谢 阿米尔

0 个答案:

没有答案