我的所有测试都在ubuntu框中运行。测试用PHP编写。它们与firefox驱动程序和chrome驱动程序一起工作得很好。我正在使用一个独立的selenium服务器(selenium-server-standalone-2.25.0.jar),它运行在同一个盒子里。最近我需要针对IE平台编写测试。我已经尝试了一些东西,但到目前为止,我仍然不确定为我的特定场景设置IE驱动程序的正确方法。
我已经尝试在同一个ubuntu框中安装带有mono的IE,但是我在安装过程中遇到了很多问题,在我摆脱了这些问题之后我就可以从我的命令行运行IE,它仍然不能用于我的测试。
我在这里阅读了这个特定的文档:http://code.google.com/p/selenium/wiki/InternetExplorerDriver并在Windows框中进行了操作,直到我看到了这一点:
IEDriverServer.exe启动的HTTP服务器设置访问权限 控制列表只接受来自本地机器的连接,和 禁止来自远程计算机的传入连接。目前,这个 如果不修改源代码就无法更改 IEDriverServer.exe。在远程上运行Internet Explorer驱动程序 机器,使用与您相关的Java独立远程服务器 语言绑定相当于RemoteWebDriver。
所以我将selenium-server-standalone-2.25.0.jar下载到windows机器并启动它;我的IEDriverServer.exe被放入我的PATH中的C:\ windows \ system32 \。然后我更改了我的ubuntu框中的代码,指向windows框上运行的selenium服务器。但仍然没有运气。
我用Google搜索了一下,有些人成功地让它运行了。但他们似乎正在使用java绑定或c#绑定,我想他们正在本地盒子上开发。我还没有找到一个类似我的工作案例:
一个ubuntu框,其中基于PHP的测试运行与在Windows上运行的远程selenium服务器的连接。 一个运行selenium独立服务器并在PATH中使用IEDriverServer.exe的Windows框
感谢。
答案 0 :(得分:9)
我遇到了类似的问题 - 在Linux上工作并希望对IE 11运行我的WD测试 - 并让它发挥作用。我和OP之间的主要区别在于我的测试是用Java编写的。
我的目标是这样的:
我做了什么:
- 必须下载IEDriverServer可执行文件并将其放在PATH中。
- 在Windows Vista或Windows 7上的IE 7或更高版本中,必须将每个区域的保护模式设置设置为相同的值。只要每个区域的值相同,该值就可以打开或关闭。要设置保护模式设置,请选择" Internet选项..."从“工具”菜单中,单击“安全”选项卡。对于每个区域,选项卡底部都会显示一个复选框,标记为"启用保护模式"。
- 此外,"增强保护模式" IE 10及更高版本必须禁用。此选项位于“Internet选项”对话框的“高级”选项卡中。
- 浏览器缩放级别必须设置为100%,以便可以将本机鼠标事件设置为正确的坐标。
- 仅对于IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序可以维护与其创建的Internet Explorer实例的连接。对于32位Windows安装,您必须在注册表编辑器中检查的密钥是HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。对于64位Windows安装,密钥为HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BFCACHE。请注意,FEATURE_BFCACHE子项可能存在也可能不存在,如果不存在,则应创建该子项。要点:在此项中,创建名为iexplore.exe的值为0的DWORD值。
注意我并不需要将IEDriverServer.exe
的位置放在PATH中,并且无法找到"增强保护模式"在我的IE 11设置中(所以没有这样做)。
java -jar selenium-server-standalone-2.53.1.jar
IEDriverServer.exe
编辑我的测试的设置部分以使用RemoteWebDriver
,就像这样(192.168.56.101是Windows框的主机唯一网络IP):
DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
driver = new RemoteWebDriver(new URL("http://192.168.56.101:4444/wd/hub"),
capability);
mvn test myproject
它有效! :)