如何在远程盒子上设置IE webdriver

时间:2012-09-12 02:26:23

标签: internet-explorer webdriver installation selenium-webdriver

我的所有测试都在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框

感谢。

1 个答案:

答案 0 :(得分:9)

我遇到了类似的问题 - 在Linux上工作并希望对IE 11运行我的WD测试 - 并让它发挥作用。我和OP之间的主要区别在于我的测试是用Java编写的。

我的目标是这样的:

  • 我的工作站:Ubuntu 14.04,用Java编写的测试。
  • Windows机器:某些带IE 11的虚拟机。
  • 我想针对在Windows上运行的IE运行我的测试,来自Ubuntu工作站(这样我就不需要在Windows机器上安装我的整个开发环境)。

我做了什么:

  1. 赢了7&从Microsoft(here)下载的IE 11 VirtualBox VM已打开电源。
  2. 下载到Windows框:(a)Java JRE,(b)Selenium Standalone Server jar(NOT" Internet Explorer驱动程序服务器"也在该页面上提到),(c){{ 3}}。
  3. 在我的工作站和Windows框之间设置仅限主机网络。 Internet Explorer Driver对过程的一个很好的描述。尽管博客文章中的VM是Linux,但对于Windows VM来说它的工作方式基本相同(使用" ipconfig"从命令提示符而不是" ifconfig"来查找您的IP)。
  4. 在Windows框中,在官方Internet Explorer驱动程序页面的Here's部分中提到的已配置内容。如果他们更改链接,我会在这里粘贴它们:
  5.   
        
    • 必须下载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设置中(所以没有这样做)。

    1. 在Windows框中,从命令提示符开始(他们必须两者正在运行;我从Required Configuration上的帖子中找出它):
      • java -jar selenium-server-standalone-2.53.1.jar
      • IEDriverServer.exe
    2. 编辑我的测试的设置部分以使用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);
      
    3. 正常地从我的Ubuntu工作站运行测试: mvn test myproject
    4. 它有效! :)