WebDriver mouseOver与selenium网格无法正常工作

时间:2013-01-30 13:12:33

标签: selenium-webdriver selenium-grid

我的要求是使用Webdriver验证Image Hover是否正常工作。在该图像标签中,当鼠标悬停在如下图像上时标题值正在改变。

正常:
[img title="ASPIRIN" "src="http://img.med.com/pi/LNK01570.jpg" class="preview">

如果我鼠标悬停在该图片上:
[img title="" "src="http://img.med.com/pi/LNK01570.jpg" class="preview">

所以我在这里尝试比较标题值以验证图像悬停。我已经为此编写了代码,并且在不使用Grid的情况下执行脚本时工作正常。但是使用Grid mouseOver无法正常工作。图像标记值未更改。使用Grid有什么问题吗?我正在使用FF17和Selenium 2.28.0以及Selenium 2.25.0。

我的代码:

String strVal1 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");
        System.out.println(strVal1);
        WebElement element = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img"));
        Locatable hoverItem = (Locatable) element;
        hoverItem.getLocationOnScreenOnceScrolledIntoView();
        Mouse mouse = ((HasInputDevices) driver).getMouse(); 
        mouse.mouseMove(hoverItem.getCoordinates());
        String strVal2 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");
        System.out.println(strVal1+"Null Value");

在上面的代码中strVal1strVal2应该不同。

1 个答案:

答案 0 :(得分:1)

 String strVal1 =driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title");

System.out.println(strVal1); WebElement element = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")); Actions mouseOver = new Actions(driver); mouseOver .moveToElement(element).build().perform(); String strVal2 = driver.findElement(By.xpath("//table[@id='ref_priceimgtable']/tbody/tr[12]/td[4]/img")).getAttribute("title"); System.out.println(strVal1+"Null Value");

你试过这种方法让鼠标结束吗?如果你尝试这个方法的意思,你有没有调用firefox配置文件的方法“profile.setEnableNativeEvents(true);” ? 。该方法是firefox在硒中处理鼠标所必需的。

请尝试这个我认为这在网格中也能正常工作。