Selenium-Grid:如何使用`user-extensions.js`
Posted
技术标签:
【中文标题】Selenium-Grid:如何使用`user-extensions.js`【英文标题】:Selenium-Grid: How to use `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 文件夹中。
有人知道怎么做吗?谢谢。
【问题讨论】:
【参考方案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 做什么以上是关于Selenium-Grid:如何使用`user-extensions.js`的主要内容,如果未能解决你的问题,请参考以下文章
测试人员如何搭建Selenium-Grid2环境(参考Java)