0

在我的工作地点,我们需要实现 Web 浏览器自动化测试。Selenium Web 驱动程序被选为首选选项。该公司使用 Internet Explorer 作为其客户群,因此需要使用此浏览器进行测试。

使用:

Selenium 2.25.1,IEDriverServer 2.25.3,nUnit 2.6.1

我创建了最基本的测试,然后在我的个人笔记本电脑上成功运行。

  1. 创建一个 C# 类项目。添加对 Selenium、IEDriverServer(位置)和 nUnit DLL 的引用。

  2. 为 nUnit 添加测试代码和类/方法装饰。

  3. 构建、编译等

在 nUnit 中,找到新编译的 DLL 项目并运行它。

预期结果是 IEDriverServer 将加载并创建 Internet Explorer 实例并导航到 Google 主页。执行搜索,检查结果页面标题并解析结果链接。

当我在我的工作机器(安装了 McAfee)上运行相同的测试时,实际发生的是输入到 Google 搜索框中的每个字符(使用 SendKeys)大约需要 6-10 秒才能完成。结果,IEDriverServer 放弃并关闭。nUnit 将测试报告为失败。

四处挖掘,我可以看到 McAfee 访问保护日志有数百个条目说明“通用标准保护:防止通用程序运行临时文件夹中的文件”

我是网络自动化的新手,但我确信这是问题的根源,并且尝试了各种对注册表和环境变量的黑客攻击,但均未成功。

似乎在其他地方找不到太多关于这个问题的信息,希望你们中的一个人可以提出解决方法。

出于显而易见的原因,该公司不能放松 McAfee 功能。

4

1 回答 1

1

IE 驱动程序使用的 IEDriverServer.exe 需要使用支持库 (DLL)。与其强迫用户必须记住将这个 .DLL 与可执行文件一起部署,不如将其作为资源存储在 .exe 文件中,并在运行时提取。使用 IEDriverServer.exe 的 2.25.3.5 版本(未作为下载发布,但作为项目 Subversion 存储库中的预构建二进制文件提供),您可以传递命令行开关,-extract-path="C:\path\to\where\the\library\should\be\extracted". 只要该目录存在,并且您对该目录具有写入权限,支持库就会被提取到该目录中一个随机命名的文件中。

.NET 绑定已更新为包含代码以利用这个新的命令行开关作为InternetExplorerDriverService类的一部分。此功能将作为 WebDriver .NET 绑定的下一个公共版本的一部分提供。

于 2012-08-29T00:11:06.577 回答