2010-07-19 47 views
2

我們將Selenium測試轉換爲使用Selenium-Grid。Selenium-Grid:如何使用`user-extensions.js`

我試圖找到一種方法來啓動硒網格的集線器和/或遠程,以便它可以使用我們之前創建的user-extensions.js。除了擴展名之外,我已經能夠使用所有的測試工具來處理舊的測試。

在線搜索我發現您可以在selenium-grid根目錄下編輯project.properties文件,並添加user_extension_file屬性以指向user-extensions.js。

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

我也嘗試使用相對和絕對路徑爲該屬性的值,並沒有一個工作。我試過把它添加到Hub的根硒文件夾和RC的根硒文件夾中。

有誰知道如何做到這一點?謝謝。

回答

4

好吧,我想通了這一點(最終)。當您使用螞蟻任務啓動遠程控制時,您可以這樣做:

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

這就像一個魅力。 :)

1

您是否嘗試過使用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/

+1

該博客的最後一條評論指出:「對於任何試圖使用此SetExtensionJS()接口的人來說,都是單挑。不能像使用user-extensions.js一樣使用它來創建Selenium命令,因爲註冊命令處理程序的代碼在SetExtensionJS()注入代碼之前運行。「這是我想要的。無論如何,我嘗試了這種方法,但沒有奏效。 – Joel 2010-07-20 16:49:13

+0

@Joel:是的,那個評論是我的。整個selenium-api.js命令處理程序的事情真的限制了你可以用user-extensions.js做什麼 – 2010-07-23 14:59:06