【问题标题】:Selenium-Grid: How to use `user-extensions.js`Selenium-Grid:如何使用`user-extensions.js`
【发布时间】:2011-03-18 02:42:18
【问题描述】:

我们正在将 Selenium 测试转换为使用 Selenium-Grid。

我正在尝试找到一种方法来启动 selenium-grid 的集线器和/或远程,以便它可以使用我们之前创建的 user-extensions.js。除了我们的扩展之外,我已经能够让所有东西都与我们的旧测试一起工作。

网上搜索发现可以编辑selenium-grid根目录下的project.properties文件,添加user_extension_file属性指向user-extensions.js。

user_extension_file=${basedir}/user-extensions.js

我也尝试过为该属性的值使用相对路径和绝对路径,但它们都不起作用。我已经尝试将它添加到 Hub 的根 selenium-grid 文件夹和 RC 的根 selenium-grid 文件夹中。

有人知道怎么做吗?谢谢。

【问题讨论】:

    标签: java selenium selenium-grid user-extensions.js


    【解决方案1】:

    好的,我(终于)想通了。当您使用 ant 任务启动远程控制时,您可以这样做:

    ant launch-remote-control -DseleniumArgs="-userExtensions path/to/user-extensions.js" ...
    

    这就像一个魅力。 :)

    【讨论】:

      【解决方案2】:

      您尝试过使用setExtensionJs 吗?

      基本上,扩展 Javascript 必须在浏览器启动之前指定,并且在会话关闭之前一直在运行。

      selenium = new DefaultSelenium('localhost', 4444, '*firefox', 'http://alistapart.com');
      def extensionJs = new File('selenium-core/src/main/resources/core/scripts/ui-map-sample.js').text;
      selenium.setExtensionJs(extensionJs);
      selenium.start();
      selenium.open('http://alistapart.com');
      selenium.click('ui=allPages::section(section=topics)');
      selenium.waitForPageToLoad('5000');
      selenium.stop();
      

      发件人:http://ttwhy.org/home/blog/2008/05/14/selenium-rc-per-session-extension-javascript/

      【讨论】:

      • 该博客上的最后一条评论指出:“对于任何尝试使用此 SetExtensionJS() 接口的人来说,这只是一个提醒。你不能像使用用户一样使用它来创建 Selenium 命令- extensions.js,因为注册命令处理程序的代码在 SetExtensionJS() 注入您的代码之前运行。”这就是我想要做的。无论如何,我尝试了这种方法,但没有奏效。
      • @Joel:是的,那条评论是我的。整个 selenium-api.js 命令处理程序确实限制了您可以使用 user-extensions.js 做什么
      猜你喜欢
      • 2012-01-09
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 2013-04-27
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 2011-10-11
      相关资源
      最近更新 更多