Selenium 系列:第三章 - 使用 Internet Explorer、Chrome、Edge 和 Firefox 进行测试
使用 Chrome、Internet Explorer、Edge 和 Firefox 进行测试!
引言
一个古老的问题:我们编写了一个自动化测试,它在 Firefox 中运行完美,对此我们感到自豪,然而您的受众使用 Chrome 和/或 Internet Explorer,那么我该如何在这些浏览器上运行它呢?
让我们在 Web 自动化领域解答这个问题!
系列链接
背景
历史上,WebDriver 和 Selenium 一直与 Firefox 紧密相连,但 Selenium 3.0 改变了这一点。作为一条经验法则,WebDriver 已经从“Firefox 优先”策略中抽象出来,现在让我们 QA 测试人员可以选择下载并使用我们想要的驱动程序,我认为这是一个巨大的改变。这对我们意味着什么?
为了让 Selenium 能够针对浏览器执行,我们有一个叫做 RemoteWebDriver
的东西,它们在下面的位置找到
部分:第三方驱动程序
- Firefox Mozilla GeckoDriver:GitHub 下载 - https://github.com/mozilla/geckodriver/releases
- Internet Explorer Driver:上面下载 URL 中的 Internet Explorer Driver Server 部分。
- Microsoft Edge Driver:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Google Chrome Driver:GitHub 下载 - https://sites.google.com/a/chromium.org/chromedriver/
- Safari:已弃用,不再支持
我的做法是(您将在解决方案中看到),从 SeleniumHq 网站上的上述 URL 下载以下驱动程序,并将它们添加到测试套件解决方案中,如下面快速展示的,显示了 Chrome、Firefox、Internet Explorer 和 Microsoft Edge 这 4 个驱动程序。
让我们在多个浏览器中进行测试!
首先,本文附带了 Selenium 系列第 1、2 和 3 章的源代码,因此需要下载它,然后我们可以一起学习示例,您可以使用源代码在多个浏览器上运行,这是一个很棒的开始!可以在第二章的 SourceFile 中下载。
下载并打开后,您需要生成项目,然后在测试资源管理器中,由于我们使用的是 MsTest,请按如下方式搜索特征 Trait: "CHAPTER-3"
。在那里,您将看到 4 个测试,每个测试都在不同的浏览器窗口中执行。
注意:需要说明的是,如果您需要所有 Chrome、Firefox、Internet Explorer 和 Edge 都安装好才能使所有 4 个测试正常工作,但如果您只有 Chrome 和 Internet Explorer,您只需运行这两个测试。很简单,对吧?
让我们开始吧,我们有 4 个测试,4 个浏览器,而我们测试中唯一真正的区别就在于代码中的一行,如下所示。
在解决方案中,如果您查看测试,您会注意到我们调用浏览器的方式有所不同,例如
// Chrome
var driver = new ChromeDriver();
// Microsoft Edge
var driver = new EdgeDriver();
// Internet Explorer
var driver = new InternetExplorerDriver();
// Firefox
var driver = new FirefoxDriver();
上面代码片段中,我们通过 saying new {BrowserType
} 来创建 webdriver (driver) 来控制浏览器。一旦我们完成了这个操作,并且我们将驱动程序初始化为 Internet Explorer、Edge、Chrome 或 Firefox,我们的测试将在整个测试过程中使用该浏览器,非常棒!
所以您现在可以执行第三章中的测试,如测试资源管理器所示,在您计算机上安装的浏览器中运行。所以,祈祷所有浏览器都能通过,如果不行,也没关系,可以针对子集进行,例如,如果您只安装了 Chrome 和 Firefox,就运行 Chrome 和 Firefox。
.......希望测试资源管理器能像我的那样完全绿色通过,并且您已经看到测试套件打开不同的浏览器并成功执行了测试!
What Next?
所以我们已经成功地在多个浏览器中执行了测试,并且看了上面的代码片段,我们知道在 Selenium 中做到这一点实际上非常容易,也许没有我们想象的那么难或可怕,对吧?!那么为什么不自己修改 Internet Explorer 测试,试着让它在 Chrome 中运行,而无需我的帮助呢?
您修改了驱动程序后,Internet Explorer 测试在 Chrome 中成功运行了吗?当然,因为这非常容易,您已经掌握了!
现在执行跨多个浏览器的测试不再那么可怕了,这也是我希望您从本文中获得的,我很想听听您的评论。
小贴士
我建议您在 Internet Explorer、Chrome 和 Firefox 中制作一些测试,您可能会发现它们在 Chrome 中通过了,但在某些情况下 Internet Explorer 中却失败了。原因是什么?
我们需要记住,并非所有浏览器都相同,它们对待用户/测试的方式也不同。例如,在 Internet Explorer 和 Chrome 之间,JavaScript 的渲染和使用方式是不同的,因为 Microsoft 和 Google 都有自己的 JavaScript 引擎。这意味着下拉列表的值,以及将值输入字段的操作有时会有所不同,而且总的来说…… Internet Explorer 稍微慢一些,所以有时我们需要在测试中加入 WebDriver 等待,以应对跨浏览器测试套件。关于这一点以后会有更多介绍,但我想如果您的测试套件实现出现失败,您需要注意这一点。
希望这篇文章内容丰富有趣,并能让您在 Selenium 中进行跨浏览器测试!
如有任何问题或反馈,请随时告诉我。
祝好,
Sean