2

http://selenium.googlecode.com/svn/trunk/docs/api/dotnet/index.htmlで .NET 用の selenium-webdriver API を見ています。IJavaScriptExecutor.ExecuteScript の引数については、「数値の場合、Int64 が返されます」と記載されています。このメソッドで 10 進数を (in/out) 渡したい場合はどうすればよいですか? たとえば、Java バインディングは現在、10 進数と非 10 進数の両方の型をサポートしています。

どんな助けでも大歓迎です。

ありがとう、バイバフ

自分の質問に答えられないので、質問を編集しています。次のコードを実行して、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)
{}

上記のコードは、「Argument is of an illegal type 0.2 Parameter name: arg」という例外をスローします。ただし、他の値 (double/float/int) は渡すことができ、戻り値は渡されたものと同じです。ダブルは今のところ私の目的にかなうはずです。そのメソッドを通過したときに、webdriver が double を Int64 に変換するのではないかと心配していました。ドキュメントを修正する必要があると思います。

ありがとう、バイバフ

4

1 に答える 1

0

したがって、解決策はfloatの代わりに使用することですdecimal

次に、floatパラメータをobjectにキャストし、キャストを に返しobjectますfloat

于 2012-10-25T18:28:23.853 に答える