Rad Uploaderは基本的に Java アプレットなので、 LiveConnectを使用して操作できます。
それと Selenium 用のツールもあります (ただし、私は使用していないため、うまく機能するかどうかはわかりません): http://fest.codehaus.org/Selenium
うまくいかない場合は、別の自動化ライブラリを使用してファイルをアップロードする必要があります。これは、Selenium が Java アプレットでもブラウザー外でも動作するように構築されていないためです。考えられる解決策には、ファイルをウィンドウの外からアップローダーにドラッグ アンド ドロップまたは ( Ctrl+C+ Ctrl+Ving) するか、[参照] ボタンをやみくもにクリックすることが含まれます...
編集
OPのコードは、実際にはJavaアプレットではなくSilverlight要素であることを示しているため、明らかに間違った製品を見ていました。
しかし-Javaアプレット用のツールがあることを知って、私はこれらを掘り下げて見つけました:
Silverlight で Selenium RC を使用するためのツールがあります。実際にどれだけ機能するかはわかりませんが、試してみてください。はい、それが Selenium RC のみであることは知っていますが、試してみることができますWebDriverBackedSelenium
...
Scott Hanselman のブログ (非常に読みやすい!) - Silverlight がScriptable
メソッドを実行できることを「悪用」しています。これは Selenium IDE 用に書かれていますが、同じことが Selenium IDE でも機能しWebDriver
ます。
Silverlight のテスト フレームワーク。マイクロソフトによる。Selenium は Web ページ用です。これを Silverlight マジックで試してみてください。
編集2:
先に述べたオプションは常にあります。アップロードは noinput
ですが、Silverlight オブジェクトであり、ブラウザ ダイアログ (または Silverlight オブジェクト) を操作できる WebDriver 用の API がないため、次のように試すことができます。
Silverlight 要素をクリックすると、ポップアップ ウィンドウが表示されますが、これを制御することはできません。私が知っているブラウザーとオペレーティング システムでは、ウィンドウが開いた後、カーソルがFile name
入力にあるとほぼ想定できます。この仮定があなたの場合にも当てはまることを確認してください。
Alt + Nそうでない場合は、少なくとも Windows では、 を押してジャンプしてみることができます...
(Java コードが続きます! 私は C# を本当に知りません。Java でも動作します。Java のクラスに似ている C# のクラスRobot
は ですSendKeys
)
はいの場合は、Robot
クラスを使用してパスを「盲目的に」入力できます。あなたの場合、それは次のようなものになります:
driver.findElement(By.id("SWFUpload_0")).click();
Robot r = new Robot();
r.keyPress(KeyEvent.VK_C); // C
r.keyRelease(KeyEvent.VK_C);
r.keyPress(KeyEvent.VK_COLON); // : (colon)
r.keyRelease(KeyEvent.VK_COLON);
r.keyPress(KeyEvent.VK_SLASH); // / (slash)
r.keyRelease(KeyEvent.VK_SLASH);
// etc. for the whole file path
r.keyPress(KeyEvent.VK_ENTER); // confirm by pressing Enter in the end
r.keyRelease(KeyEvent.VK_ENTER);
それはひどいですが、うまくいくはずです。これらが必要になるかもしれないことに注意してください: How can I make Robot type a `:`? および文字列を KeyEvent に変換する