在自动化测试领域,Selenium 是一个非常流行的工具,它允许测试人员编写脚本来模拟用户在浏览器中的操作。随着时间的推移,Selenium 已经从最初主要支持 Firefox 浏览器,发展到现在可以支持多种浏览器。本文将介绍如何使用 Selenium 进行跨浏览器自动化测试,包括下载和配置不同浏览器的 WebDriver,以及如何在测试中切换不同的浏览器。
历史上,WebDriver和Selenium与 Firefox 浏览器紧密相连。然而,随着 Selenium 3.0 的发布,这种情况发生了变化。WebDriver现在允许测试人员选择他们想要使用的驱动程序,这是一个很大的进步。为了使 Selenium 能够在不同的浏览器上执行测试,需要一个叫做 RemoteWebDriver 的东西。以下是一些常用的 WebDriver 下载链接:
在解决方案中,将看到从上述 URL 下载的驱动程序被添加到测试套件中,展示了 Chrome、Firefox、Internet Explorer 和 Microsoft Edge 四种驱动程序。
首先,需要下载Selenium系列文章的第 1、2 和 3 章的源代码,这是进行示例和运行多浏览器测试的基础。下载链接可以在第 2 章的 SourceFile 中找到。下载并打开后,需要构建项目,并在测试资源管理器中使用 MsTest 搜索特定的特征,如下所示:
Trait: "CHAPTER-3"
在那里,将看到 4 个测试,每个测试都在不同的浏览器窗口中执行。需要注意的是,如果只有 Chrome 和 Internet Explorer 安装,那么只需要运行这两个测试。
在解决方案中,将注意到如何调用浏览器有所不同,例如:
// Chrome
var driver = new ChromeDriver();
// Microsoft Edge
var driver = new EdgeDriver();
// Internet Explorer
var driver = new InternetExplorerDriver();
// Firefox
var driver = new FirefoxDriver();
上面的代码片段展示了如何创建WebDriver,即 driver,来控制浏览器。一旦初始化了 driver 为 Internet Explorer、Edge、Chrome 或 Firefox,测试将在整个测试期间使用该浏览器,这非常酷!
已经成功地在多个浏览器中执行了测试,并且从上面的代码片段中,知道在Selenium中这样做实际上非常简单,并不像是想象的那么困难或可怕,对吧?那么为什么不尝试自己修改 Internet Explorer 测试,让它在 Chrome 中运行呢?
如果成功地将 Internet Explorer 测试修改为在 Chrome 中运行,那么恭喜,因为已经掌握了这个技能!现在,执行多个浏览器的测试不再那么可怕,这是本文希望带给收获,并且非常想听听反馈。
建议在 Internet Explorer、Chrome 和 Firefox 中创建一些测试,可能会发现它们在 Chrome 中通过了,但在 Internet Explorer 中没有。原因是不同的浏览器并不完全相同,它们对用户/测试的处理也不同。例如,在 Internet Explorer 与 Chrome 中,JavaScript 的渲染和使用方式是不同的,因为微软和谷歌都有自己的 JavaScript 引擎。这意味着下拉值和向字段发送值有时可能会有所不同,总的来说…… Internet Explorer 可能会慢一些,所以测试有时需要在 WebDriver 中等待,以应对跨浏览器测试套件。关于这个话题,还会有更多的内容,但想提一下,如果测试套件实现导致失败,这是可能的原因。