2012-10-12 29 views
0

可能重複:
Load an external js file containing useful test functions in selenium硒RC在Javascript中增加一個外部JS文件

我使用Selenium RC,寫在Javascript測試,因此做了系統性能測試我的團隊中的其他人可以理解他們。我需要讓Sencha Ext庫能夠訪問頁面上的某些控件,所以我需要能夠定義外部js庫。在我對硒的測試中,我無法使用正常的手段將腳本標記寫入頁面來定義庫;文件未定義。也試圖使用像addScript的其他硒命令似乎沒有多大的幫助。

有沒有更好的方式來包含一個外部js庫Selenium?我在本地有開源的Sencha Ext庫,所以我可以把它放在任何地方。

我可以直接加載庫作爲蘇打水的參考嗎?我確實看到有人修改了Selenium獨立的RC jar文件,但那是我理解的方式。我有點迷失在這裏從哪裏出發。

感謝,

回答

0

好,從該點JS可以從Selenium測試以這種方式運行:

WebDriver driver; 
// create driver, i.e. driver = new FirefoxDriver(); 
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("alert('Hello from Selenium!');"); 

因此,實際上我們需要通過硒API包括JS庫。恕我直言,你的解決方案是這樣的:

WebDriver driver; 
    // create driver, i.e. driver = new FirefoxDriver(); 
    JavascriptExecutor js = (JavascriptExecutor) driver; 

//Load an external js file containing useful test functions in selenium 
js.executeScript("var doc = this.browserbot.getCurrentWindow().document; var scriptTag = doc.createElement("script"); scriptTag.type = "text/javascript" scriptTag.src = 'your_script_URL_goes_here'; doc.body.appendChild(scriptTag)"); 

這樣我們包括需要的js lib。以類似的方式,你可以調用包含在這個外部js庫中的函數。

This過帳完成也可能對您有所幫助。 也調查this的問題。 此致敬禮。

+0

謝謝,但我尋找一個javascrpt唯一的解決方案;沒有JAVA。我看到的第一個鏈接是JAVA,而另一個是關閉硒IDE;我都沒有使用。我使用命令行中的selenium RC來測試用javascript「唯一」作爲中介的蘇打水。 – tree

+0

我曾嘗試添加Sencha Ext作爲硒RC容器的擴展,但它似乎不起作用。更新RemoteRunner.html,TestRunner.html並將其添加到user-extensions.js似乎沒有定義我的腳本。我試圖首先將腳本以正常的js方式添加到頁面中,然後以編程方式在user-extension.js或html文件中添加腳本標記。但是,我認爲我還需要定義一個用於定位Sencha方法的對象Ext;例如$或jquery中的jquery。 – tree

+0

因爲我可以用runcript方法管理一段時間,所以我正在跳過這一步。 – tree