在我的工作地点,我们需要实施网络浏览器自动化测试。 选择Selenium web驱动程序作为首选选项。 该公司使用Internet Explorer作为其客户群,因此需要使用此浏览器进行测试。
使用:
Selenium 2.25.1,IEDriverServer 2.25.3,nUnit 2.6.1
我已经创建了最基本的测试,然后在我的个人笔记本电脑上成功运行。
创建一个C#类项目。添加对Selenium,IEDriverServer(位置)和nUnit DLL的引用。
为nUnit添加测试代码和类/方法装饰。
构建,编译等。
在nUnit中,找到新编译的DLL项目并运行它。
预期结果是IEDriverServer将加载并创建Internet Explorer实例并导航到Google主页。 执行搜索,检查结果页面标题并解析生成的链接。
当我从我的工作机器(安装了McAfee)运行相同的测试时,实际发生的是每个输入Google搜索框的字符(使用SendKeys)大约需要6-10秒才能完成。 结果,IEDriverServer放弃并关闭。 nUnit将测试报告为失败。
四处搜索,我可以看到McAfee Access Protection日志有数百个条目 “通用标准保护:防止常见程序从Temp文件夹运行文件”
我是网络自动化的新手,但我确信这是问题的根源,并尝试使用注册表和环境变量进行各种攻击而没有成功。
似乎在其他地方找不到这个问题,并希望你们中的一个人可以建议一个解决方法。
由于显而易见的原因,公司无法放松迈克菲功能。
答案 0 :(得分:1)
IE驱动程序使用的IEDriverServer.exe需要使用支持库(DLL)。不是强迫用户必须记住将此.DLL与可执行文件一起部署,而是将其作为资源存储在.exe文件中,并在运行时提取。对于IEDriverServer.exe的2.25.3.5版(未作为下载发布但在项目Subversion存储库中以prebuilt binary提供),您可以传递命令行开关-extract-path="C:\path\to\where\the\library\should\be\extracted"
。只要目录存在,并且您对目录具有写入权限,就会将支持库提取到该目录中的随机命名文件。
.NET绑定已更新为包含代码,以利用此新命令行开关作为InternetExplorerDriverService
类的一部分。此功能将作为WebDriver .NET绑定的下一个公开发行版的一部分提供。