什么是 Selenium?
Selenium 是一种开源工具,用于在 Web 浏览器上执行自动化测试(使用任何 Web 浏览器进行 Web 应用程序测试)。
等等,先别激动,让我再次重申一下,Selenium 仅可以测试Web应用程序。我们既不能使用 Selenium 测试任何桌面(软件)应用程序,也不能测试任何移动应用程序。
这很糟糕,对吧?我能感觉到你的痛苦。但请放心,有许多工具可以测试桌面软件和移动应用程序,例如:IBM 的 RFT,HP 的 QPT,Appium 等。但是,本文的重点是测试动态 Web 应用程序,以及为什么 Selenium 在这方面是最好的。
Selenium安装
pip install selenium
准备驱动
当前支持诸如chrome,firefox,Edge,IE等主流浏览器,前提是要下载浏览器驱动(驱动下载地址上网自行百度),否则会报诸如以下此类的错误:
下载浏览器版本匹配的驱动后,放在python目录下的Scripts目录下即可。
跨浏览器测试中的Selenium
顾名思义,跨浏览器测试是一种用于在不同的Web浏览器和设备上测试Web应用程序以确保其在每个设备和浏览器上都能无缝运行的方法。
Selenium帮助在Safari,Google Chrome,Mozilla Firefox和IE中自动化测试案例。Selenium也可以同时在不同浏览器上的同一台计算机上执行测试用例。它还支持多种语言和操作系统。
利用正确的定位器
Selenium框架的底部是与浏览器进行交互,从而可以使用文档**对象模型(DOM)**检查,输入和浏览多个对象。这是通过一组操作发生的,并使用了多个定位器,包括CSS选择器,name,Xpath,ID,标记名,链接文本和classname。
例如,当您不想在开发人员和测试人员不了解的情况下更改代码时,请使用Class和ID定位器。另一方面,当其他团队进行测试时,可以使用链接文本来动态处理情况。最后,可以采用XPath可用于定位。
元素集合
进行测试,数据驱动
在对多种形式的数据进行测试时,测试变得更加有效,当编写更好的自动化代码以测试Web应用程序或任何其他软件时,测试也是如此。在自动化中,关键是通过多种形式的数据测试测试代码,而不是为每个数据编写不同的测试脚本。这可以通过数据驱动的测试框架轻松实现。它有助于将测试数据输入存储到外部数据库中,例如CSV文件,excel文件,文本文件,XML文件甚至是ODBC存储库。此数据被调用到脚本中,并一次又一次地运行在相同的测试代码中。与手动工作相比,这有助于减少冗余并加快执行速度。发现新的bug。这种方法的另一个好处是,它减少了您可能必须添加的测试脚本的数量,从而加快了测试周期。
与之保持同步,它还有助于简化脚本的可维护性。如果应用程序发生任何更改,代码中的所有硬编码值都可能会中断。实现此目的的一种更简单的方法是将所有硬编码组件设置为变量驱动。例如,通过将它们各自的值存储在excel工作表中并在脚本中调用它们,可以使所有定位器都不受代码限制。万一您的任何定位器损坏了,您只需要在excel中更改定位器的值即可,而根本不需要触摸脚本。
上面的代码显示了从Excel获取的用于不同登录凭据的数据。对于Xpath也可以扩展同样的功能,其中XPath值也可以从excel中提取。在这里,通过数据驱动方法解决的关键点是从我们的代码中删除硬编码的值,使其成为面向变量,并使其在多组输入中运行同一段代码。
selenium 模拟鼠标下拉,并获取源代码
选择器顺序
选择选择器的顺序很重要,因为选择器(例如XPath和CSS)是基于位置的。与ID,name和链接文本相比,它们比较慢。name和ID是特别直接和直接的方式选择器。CSS通常是ID和Name的组合。相比之下,XPath应该是最后的解决方案。
健壮的解决方案如下所示: XPath <CSS <Links Text <Name <ID。这意味着以ID开头,并使XPath为最后一个选择器。在3个没有数据的表中,XPath识别第二个表的速度最慢,并且可能不会返回正确的表。因此,最后选择了XPath,它们很脆弱。CSS始终与名称和ID结合在一起。