Internet explorer 如何在远程机箱上设置IE webdriver

Internet explorer 如何在远程机箱上设置IE webdriver,internet-explorer,webdriver,installation,selenium-webdriver,Internet Explorer,Webdriver,Installation,Selenium Webdriver,我把所有的测试都放在一个ubuntu盒子里运行。测试是用PHP编写的。firefox驱动程序和chrome驱动程序都可以正常工作。我正在使用一个独立的selenium服务器(selenium-server-standalone-2.25.0.jar),它运行在同一个框中。最近我需要针对IE平台编写测试。我已经尝试了一些方法,但到目前为止,我仍然不确定为我的特定场景设置IE驱动程序的正确方法是什么 我曾尝试在同一个ubuntu盒中安装IE和mono,但在安装过程中遇到了很多问题,在我解决了这些问题

我把所有的测试都放在一个ubuntu盒子里运行。测试是用PHP编写的。firefox驱动程序和chrome驱动程序都可以正常工作。我正在使用一个独立的selenium服务器(selenium-server-standalone-2.25.0.jar),它运行在同一个框中。最近我需要针对IE平台编写测试。我已经尝试了一些方法,但到目前为止,我仍然不确定为我的特定场景设置IE驱动程序的正确方法是什么

我曾尝试在同一个ubuntu盒中安装IE和mono,但在安装过程中遇到了很多问题,在我解决了这些问题并使其能够从命令行运行IE之后,它仍然无法用于我的测试

我在这里通读了这个特定的文档:然后在一个windows框上通读,直到我看到以下内容:

由IEDriverServer.exe启动的HTTP服务器设置访问权限 控制列表仅接受来自本地计算机的连接,以及 不允许来自远程计算机的传入连接。目前, 如果不将源代码修改为 IEDriverServer.exe。在远程计算机上运行Internet Explorer驱动程序 使用Java独立远程服务器连接您的 语言绑定相当于RemoteWebDriver

因此,我将selenium-server-standalone-2.25.0.jar下载到windows机器并启动它;我的IEDriverServer.exe被放入我路径中的C:\windows\system32\中。然后我修改了ubuntu框中的代码,指向运行在windows框中的selenium服务器。但还是没有运气

我在谷歌上搜索了一下,有一些人成功地运行了它。但他们似乎在使用java绑定或c#绑定,我想他们是在本地机器上开发的。我还没有找到一个像我这样的工作案例:

一个ubuntu框,其中基于PHP的测试运行到运行在windows上的远程selenium服务器的连接。 运行selenium独立服务器并在路径中具有IEDriverServer.exe的windows机箱


谢谢。

我遇到了一个类似的问题-在Linux上工作,想在IE 11上运行WD测试-并让它正常工作。我和OP之间的主要区别在于,我的测试是用Java编写的

我的目标是这样的:

  • 我的工作站:Ubuntu 14.04,用Java编写的测试
  • Windows计算机:一些带有IE 11的虚拟机
  • 我想在Ubuntu工作站上对运行在Windows box上的IE运行测试(这样我就不需要在Windows机器上安装整个开发环境)
我所做的:

  • 获得Win 7&IE 11 VirtualBox虚拟机,从Microsoft()下载,并启动
  • 下载到Windows框:(a)Java JRE,(b)jar(不是该页上提到的“Internet Explorer驱动程序服务器),(c)
  • 在我的工作站和Windows机箱之间设置仅限主机的网络。这是一个很好的过程描述。尽管博客文章中的虚拟机是Linux,但它对Windows虚拟机的工作原理基本相同(使用命令提示符中的“ipconfig”而不是“ifconfig”来查找您的IP)
  • 在Windows box上,配置了Internet Explorer驱动程序官方页面中的部分中提到的内容。如果他们更改了链接,我会将其粘贴到此处:
    • IEDriverServer可执行文件必须下载并放置在您的路径中
    • 在Windows Vista或Windows 7上的IE 7或更高版本上,必须将每个区域的保护模式设置设置为相同的值。该值可以打开或关闭,只要每个分区的值相同。要设置受保护模式设置,请从“工具”菜单中选择“Internet选项…”,然后单击“安全”选项卡。对于每个区域,标签底部将有一个复选框,标记为“启用保护模式”
    • 此外,IE 10及更高版本必须禁用“增强保护模式”。此选项位于“Internet选项”对话框的“高级”选项卡中
    • 浏览器缩放级别必须设置为100%,以便将本机鼠标事件设置为正确的坐标
    • 仅对于IE 11,您需要在目标计算机上设置一个注册表项,以便驱动程序能够保持与它创建的Internet Explorer实例的连接。对于32位Windows安装,您必须在注册表编辑器中检查的项是HKEY\U LOCAL\U 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的DWORD值,其值为0
    注意:我不需要将
    IEDriverServer.exe
    的位置放在路径中,并且在我的IE11设置中找不到“增强的保护模式”(因此没有这样做)

  • 在Windows box上,从命令提示符开始(它们必须同时运行;我从上的帖子中了解到):
    • java-jar-selenium-server-standalone-2.53.1.jar
    • IEDriverServer.exe
  • 编辑了我的测试的设置部分以使用
    RemoteWebDriver
    ,如下所示(192.168.56.101是Windows box的纯主机网络IP):

  • 在我的Ubuntu工作站上正常运行测试:
    mvn测试myproject

  • 成功了!:)

    这里有一些非常有用的信息,包括您使用的PHP语言绑定、失败的PHP代码示例,以及您从Java远程服务器接收到的错误。看起来没有办法从PHP测试中远程测试IE。我使用的语言是绑定。
    DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
    driver = new RemoteWebDriver(new URL("http://192.168.56.101:4444/wd/hub"),
        capability);