我正在做一个项目,需要在多个浏览器(我认为目前有三个浏览器:IE8、IE9 和 Safari)上截取大量页面的屏幕截图。我以前使用过跨浏览器测试,但遇到了太多问题,现在认为这不是一个选择。
还有其他可靠的方法吗?截图数量将达到数百张,并且将来可能会发生变化,因此手动执行此操作也不是一个真正的选择。
答案1
你提到曾尝试过跨浏览器测试在我介绍“自己动手”的解决方案之前,请注意还有其他几个(较旧的)服务,我最喜欢的是浏览器截图。
话虽如此,你所描述的情况是完全有可能的,尽管将要需要一些编程知识才能完成。无论使用哪种编程语言,应用程序都应遵循相同的基本“算法”:
for each url in url_list:
for each browser in browser_list:
launch_browser(browser, url)
take_screenshot(filename = date & browser & url)
terminate_browser(browser)
最近我开始接触 Python,虽然任何其他语言在这里都可以接受(考虑到你想在 IE8/9 中测试网站,我假设你的平台仅限于 Windows),但现有的 Stack Overflow 上有几个问题应该足以帮助你:
- 使用 python 来自动化 Firefox?(您需要找到某种使用 Python 控制浏览器的方法;不过,我相信您至少可以简单地调用浏览器可执行文件并将 URL 作为参数传递给它,完全绕过了执行此操作的需要 [除非您需要对一个页面进行多张截图,因为滚动可能需要特定于浏览器的控制])
- 使用 Python 在 Windows 上截屏?
- 如何用 Python 获取网站截图(对于概念来说更有用,因为其中一些解决方案使用了 Python 本身的渲染引擎,例如 WebKit)
答案2
这取决于您的网站/应用程序。如果它与此类服务兼容(即,您想要测试的区域可以通过 GET 请求访问,而不需要额外的上下文,例如经过验证的用户会话),那么有几种服务可以从许多不同的浏览器和版本获取屏幕截图。http://browsershots.org/是通过快速搜索找到的,但我自己从未使用过这些,所以我无法直接评论其可靠性。
对于交互式测试,有https://browserling.com/尽管这并不比在本地在多个浏览器中运行测试方便多少。
有一些软件包支持完全自动化的 Web 应用程序测试,尽管这些软件包需要进行大量设置才能很好地完成工作(我合作过的一些团队使用 Selenium 进行自动回归测试,但我不确定它是否支持将屏幕截图作为其结果报告的一部分)。不过,这正在转向开发/测试讨论,因此,如果这是您正在寻找的东西,您可能会在 stackoverflow 上获得更好的建议。