【问题标题】:How to setup IE webdriver on a remote box如何在远程机器上设置 IE webdriver
【发布时间】:2012-09-12 02:26:22
【问题描述】:

我的所有测试都在 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 服务器。但仍然没有运气。

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

一个 ubuntu 盒子,基于 PHP 的测试运行连接到在 Windows 上运行的远程 selenium 服务器。 一个运行 selenium 独立服务器并在 PATH 中使用 IEDriverServer.exe 的 Windows 框

谢谢。

【问题讨论】:

  • 这里的一些真正有用的信息是您使用的 PHP 语言绑定、失败的 PHP 代码示例以及您从 Java 远程服务器收到的错误。
  • 我也遇到了同样的问题。看起来没有办法通过 PHP 测试在 IE 中进行远程测试。我使用github.com/Nearsoft/PHP-SeleniumClient 作为语言绑定。

标签: internet-explorer webdriver installation selenium-webdriver


【解决方案1】:

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

我的目标是这样的:

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

我做了什么:

  1. 获得 Win 7 和 IE 11 VirtualBox VM,从 Microsoft (here) 下载,启动。
  2. 下载到 Windows 框:(a) Java JRE,(b) Selenium Standalone Server jar(不是该页面上还提到的“Internet Explorer 驱动程序服务器”),(c) Internet Explorer Driver
  3. 在我的工作站和 Windows 机器之间设置仅主机网络。 Here's 很好地描述了这个过程。尽管博文中的虚拟机是 Linux,但它在 Windows 虚拟机上的工作方式几乎相同(在命令提示符下使用“ipconfig”而不是“ifconfig”来查找您的 IP)。
  4. 在 Windows 机器上,配置了官方 Internet Explorer 驱动程序页面上提到的内容,位于 Required Configuration 部分。以防他们更改链接,我将它们粘贴在这里:
  • 必须下载 IEDriverServer 可执行文件并将其放置在您的 PATH 中。
  • 在 IE 7 或更高版本的 Windows Vista 或 Windows 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 机器上,从命令提示符开始(它们必须两者都在运行;我从 this issue 上的帖子中发现了这一点):
    • 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

它奏效了! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 2012-02-08
    相关资源
    最近更新 更多