我的要求是使用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");
在上面的代码中strVal1
和strVal2
应该不同。
答案 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在硒中处理鼠标所必需的。
请尝试这个我认为这在网格中也能正常工作。