2

我正在查看http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/index.html上的 .NET 的 selenium-webdriver API 。对于 IJavaScriptExecutor.ExecuteScript 上的参数,它声明“对于数字,返回 Int64”。如果我想用这种方法传递一个小数(输入/输出),我需要做什么?例如,Java 绑定当前支持十进制和非十进制类型。

任何帮助表示赞赏。

谢谢, 瓦巴夫

由于我无法回答自己的问题,因此我正在编辑问题。我运行以下代码来测试可以传递给 ExecuteScript 方法的参数类型。

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)
{}

上面的代码抛出异常'Argument is of an invalid type 0.2 Parameter name: arg'。但是可以传递其他值(double/float/int),返回值与传递的相同。替身现在应该符合我的目的。我担心 webdriver 在通过该方法时会将我的双精度转换为 Int64。我认为文档需要修改。

谢谢, 瓦巴夫

4

1 回答 1

0

所以解决方案是使用float而不是decimal.

然后将float参数转换为并转换为object返回。objectfloat

于 2012-10-25T18:28:23.853 回答