2012-10-25 23 views
1

我正在查看用於.NET的selenium-webdriver API http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/index.html。對於IJavaScriptExecutor.ExecuteScript上的參數,它聲明'對於一個數字,返回一個Int64'。如果我想用此方法傳遞小數(進/出),我需要做什麼?例如,Java綁定目前支持十進制和非十進制類型。selenium webdriver ijavascriptexecuter執行腳本參數類型

任何幫助表示讚賞。

感謝, Vaibhav的

既然不能回答我的問題,我編輯的問題。 我運行下面的代碼來測試可以傳遞給ExcecuteScript方法的參數類型。

try 
{ 
    IWebDriver driver = new InternetExplorerDriver(); 
     string script = "return arguments[0];"; 
    double d = 15.009; 
    float f = 13.2f; 
    decimal dec = 0.2m; 
    int i = 8; 
    object value = ((IJavaScriptExecutor)driver).ExecuteScript(script, new object[] { dec }); 
    driver.Close(); 
    driver.Quit(); 
} 
catch(Exception ex) 
{} 

上面的代碼拋出一個異常'參數是非法類型0.2參數名稱:arg'。但其他值(double/float/int)可以傳遞,返回值與傳遞的值相同。雙重現在應該爲我的目的服務。我擔心webdriver會在通過該方法時將我的double轉換爲Int64。我認爲文件需要修改。

感謝,Vaibhav的

+0

你有沒有嘗試過將'object'投射到'float'然後'float'到'object'? –

+0

@FrancisP,不會這樣cast(對象爲int,然後int爲float)鬆開小數點後的值嗎? – vabii

+0

你是100%正確的,你是否用直接演員試過了? –

回答

0

因此,解決辦法是使用float而不是decimal

然後鑄造float參數到object並且鑄造返回objectfloat

+0

是的,這是有效的。正如我在我編輯的問題中提到的那樣,我很擔心將float/double/decimal傳遞給該方法。謝謝。 – vabii

+0

而不是編輯你的問題,你應該保持原樣並接受解決方案。這樣,對於遇到同樣問題的用戶來說,這會更直觀。 –

+0

那時我無法回答我自己的問題,所以我編輯了這個問題。我接受你的答案。你能否修改你的答案,說float和double,都可以用來代替小數。謝謝。 – vabii

相關問題