使用Selenium WebDriver测试浏览器之间的视觉差异

时间:2012-08-16 02:51:33

标签: selenium cross-browser qa web-testing selenium-webdriver

也许我错过了一个功能性的Selenium。在进行跨浏览器测试时,我主要是想了解我的需求。经过数周的手动测试后,我逐渐意识到我测试的功能都是一样的,但我遇到的所有问题都源于视觉问题。我不需要断言而不是元素存在;如果它在一个浏览器中就可以了。浏览器之间的数据也不会改变。

所以我的问题主要是视觉问题。例如,在Internet Explorer中显示另一个文本框时,它应该与Firefox和Chrome中的文本框在同一行上显示。当浏览器应该相同时,显示的字体类型是不同的。标题行换行,因为一个浏览器中的字体大小导致它在另一个浏览器中停留在同一行上时会这样做。

有没有人知道上述场景的可用示例? Selenium是我使用的合适工具吗?或者我应该坚持手动测试这样的东西?

3 个答案:

答案 0 :(得分:1)

我建议在不同的浏览器中运行测试时截取屏幕截图。 然后,您可以一次比较不同浏览器中的视图。是的,它将涉及一些手动审查,但可以使用Selenium自动执行操作,这将为您节省大量时间。

您可以使用

之类的功能
public void takeScreenShot (String filename) throws Exception {
    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    FileUtils.copyFile(scrFile, new File("[path to storing folder]"+ filename + ".jpg"));
}

您可以在执行某些操作后认为视图很重要的任何地方调用此函数。

你必须 -

import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;

但是Eclipse可以处理这个部分。 :)

我希望这能回答你的问题!

答案 1 :(得分:0)

可能很晚才回答这个问题。

您可以使用Sikuli库实现此目的。这仅适用于Java语言。比较用户界面的绝佳工具。

答案 2 :(得分:0)

您可以使用Ocular - 一个开源库,使用Selenium WebDriver进行可视化验证。

更多信息:

http://www.testautomationguru.com/ocular-automated-visual-validation-for-selenium-webdriver-test-automation-frameworks/