在本文中,我们将了解如何使用Selenium IE驱动程序在IE上自动测试Web应用程序。我们将展示使用Python、Java、C#和PHP的Selenium Internet Explorer驱动程序的用法。
一、什么是Selenium IE驱动程序?
Selenium IE驱动程序是用于Internet Explorer的Selenium WebDriver;它也被称为IE DriverServer。它是一个独立的服务器,充当浏览器(即IE)和Selenium脚本之间的桥梁。
1. 安装Selenium
安装命令是pip install -U selenium,上述命令执行完成后即安装成功。记录安装的版本号。
2.下载对应的IEDriverServer
要开始使用IE进行跨浏览器测试,你首先需要下载并设置Selenium Internet Explorer驱动程序。 接下来,下载Selenium IE驱动程序——一种与机器架构(即32位或64位)内嵌的驱动程序。IEDriverServer的版本号和Selenium的版本号一定要一致,安装selenium时记录版本号即为了在此处对应。
将IEDriverServer.exe所在的位置附加到环境变量PATH。
二、如何设置Internet Explorer进行自动化测试?
由于IE是一个过时的浏览器,IE浏览器的很多地方没有得到更新,你需要设置一系列的步骤为跨浏览器测试做好准备。以下是为跨浏览器测试设置IE所需的基本配置:
1.保护模式配置
IE中的保护模式必须正确设置;否则,跨浏览器自动化测试将导致“NoSuchWindowException”这样的显示结果。IE中每个区域的保护模式应该是相同的。小、中、大是IE中的三种保护模式。例如,如果某个区域(例如Internet)的保护模式设置为小,则其他所有区域也应设置为相同的保护模式。
对于使用Selenium IE驱动程序的自动化测试,我们禁用了所有区域的保护模式:Internet、本地网络、可信站点和受限站点。你应该重新启动IE浏览器以使其更改生效。
2.将浏览器缩放级别设置为100%
不正确的浏览器缩放级别可能会产生一定的影响。建议将缩放级别设置为100%。要设置缩放级别,请转到“查看”菜单项并指向“缩放”。选择缩放级别为100%并重新启动IE以使更改生效。
3.Windows注册表中的iexplore.exe条目
在具有动态内容的网页上执行自动化测试时,你可能会遇到问题。在处理使用AJAX(异步JavaScript和XML)加载的Web元素期间,你会看到明显的延迟。在Windows注册表中创建一个条目iexplore.exe以确保更好的自动化测试体验。
如果不存在,则创建子项FEATURE_BFCACHE。发布后,你应该创建一个DWORD类型的条目iexplore.exe。将“0”分配给iexplore.exe条目。
4.使用32位Selenium IE驱动
如果在IE上进行自动化测试时遇到问题,请将64位Selenium IE驱动程序替换为32位Selenium IE驱动程序。将存在32位IEDriverServer的位置附加到环境变量PATH。
至此,IE浏览器和Selenium IE Driver的所有配置就完成了。我们准备演示如何在Selenium Python、Selenium Java、Selenium C#中配置Selenium IE驱动程序。
三、如何配置Selenium IE驱动程序?
我们采用一个示例场景来解释如何在IE上执行自动化浏览器测试。
1.如何在Selenium Python中配置Selenium IE驱动程序?
要使用Python在Selenium中调用IE浏览器,你必须选择Ie类并创建该类的对象。Selenium IE驱动程序(即IEDriverServer.exe)所在的路径必须添加到调用IE浏览器的webdriver.Ie方法中。
在我们的例子中,Selenium IE驱动程序位于C:\Setup-Folder\Selenium_Grid,这就是我们使用Selenium Python在我们的机器上调用IE浏览器。
2.如何在Selenium Java中配置Selenium IE驱动程序?
为了使用Java调用Selenium中的IE浏览器,我们使用System.setProperty方法将webdriver.ie.driver(这是关键)设置为IEDriverServer.exe(作为关键)所在的路径。设置Selenium IE驱动程序的路径后,我们实例化IE驱动程序类。
在我们的例子中,Selenium IE驱动程序位于C:\Setup-Folder\Selenium_Grid,这就是我们使用Selenium Java在我们的机器上调用IE浏览器。
3.如何在Selenium C#中配置Selenium IE驱动程序?
要使用C#在Selenium中调用IE浏览器,首先使用(或导入)OpenQA.Selenium.IE namespace。它包含Internet Explorer Driver类,该类通过创建InternetExplorerDriver实例提供访问IE以运行测试的机制。
下一步是添加Selenium IE驱动程序以在IE上执行脚本。为此,创建InternetExplorerOptions类的新实例并将IntroduceInstabilityByIgnoringProtectedModeSettings设置为True。使用此选项,我们将忽略IE中的保护模式设置,以便不正确的设置不会在我们的测试中导致任何问题。你还可以设置InitialBrowserUrl属性以在IE启动时设置初始URL。
使用以下参数创建InternetExplorerDriver的实例:
1.Selenium IE驱动程序的路径(即IEDriverServer.exe)
2.之前使用InternetExplorerOptions创建的选项
在Java和Python等语言中,Selenium Internet Explorer驱动程序可执行文件的名称在路径中传递。在Selenium C#中,只需要将包含IEDriverServer.exe的文件夹的路径发送到InternetExplorerDriver的实例。
在我们的机器中,Selenium IE驱动程序位于C:\Setup-Folder\Selenium_Grid。这就是我们使用Selenium C#在我们的机器上调用IE浏览器。
在本文中,我们查看了Selenium IE驱动程序,即Selenium Internet Explorer驱动程序(WebDriver)—也称为IEDriverServer,举例说明如何配置Selenium IE驱动程序,截至2020年12月,Internet Explorer在浏览器市场仍占有1.19%的市场份额。考虑到世界互联网用户数量,1%仍然是一个巨大的数字,如果企业不注重在IE浏览器上进行测试,这在一定程度上会影响企业的盈利能力。因此,在规划跨浏览器测试时,你也绝对应该考虑在IE上进行测试,因为它在浏览器市场中仍然很重要!
参考文章:https://www.lambdatest.com/blog/how-to-run-selenium-tests-using-ie-driver/#runtests
文章标签: 跨浏览器测试