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 に変換するのではないかと心配していました。ドキュメントを修正する必要があると思います。
ありがとう、バイバフ