2012-04-07 4 views
0

アップロードスレッド数が多かったが、回答が見つかりませんでした。誰かが助けてくれますか? 私は自分のPCからウェブサイトにアップロードするファイルを選ぶことができるブラウズボタンを持っています。どのようにしてSelenium 2.20とJavaでファイルをアップロードできますか?

<input id="contentFileInput" width="110" type="file" height="30" name="contentFileInput" style="display: none;"> 
<object id="contentFileInputUploader" width="110" height="30" type="application/x-shockwave-flash" data="../../Scripts/uploadify.swf" style="visibility: visible;"> 
<param name="quality" value="high"> 
<param name="wmode" value="opaque"> 
<param name="allowScriptAccess" value="sameDomain"> 
<param name="flashvars" value="uploadifyID=contentFileInput&pagepath=/Content/&script=/Content/AsyncUpload/&folder=&width=110&height=30&wmode=opaque&method=POST&queueSizeLimit=999&simUploadLimit=1&fileDesc=*.mpeg;*.mpg;*.avi;*.flv;*.mov;*.mp4;*.wmv&fileExt=*.mpeg;*.mpg;*.avi;*.flv;*.mov;*.mp4;*.wmv&auto=true&sizeLimit=1258291200&fileDataName=Filedata"> 
</object> 

私が試した: WebElementのelemは= driver.findElement(By.xpath( "// * [@ ID = 'contentFileInputUploaderを']" ここで参照ボタンをウェブサイト上にあるHTMLコードはあります)); elem.sendKeys( "C:///video/file.flv");

でも何もしません。ブラウズボタンをホバーすると、私はffのfirepathからxpathを得ました。誰かが私ができることをお勧めしますか?私は本当に立ち往生している。前もって感謝します。

+0

をなぜあなたはボタンにキーを送信しますか?ファイルをアップロードするフローは何ですか?最初にボタン>標準のアップロードファイルダイアログが表示されたら、OKをクリックし、あなたのウェブサイトにファイルをアップロードします。私は正しいですか? –

+0

その溶液は別のポストによって提供された。私はそれがこの特定のタイプのボタンでは機能しないことを指摘しています。あなたの前提に間違いはありませんが、ダイアログが表示されたときに、この場合はclickメソッドはこのオブジェクトでは機能しません。そして、たとえそれが窓を開けたとしても、その時はもはや支配権を持ちません。誰でもアイデアはありますか? – twsel

+0

おそらく上記の要素で遊ぶべきです。セレンIDEで試してみてください: 'type | contentFileInput | C:\\ video \\ file.flv'。もしそれがうまくいくなら、あなたは値を入力するためにJavaScriptを使うべきでしょう: '((JavascriptExecutor)driver).executeScript(" arguments [0] .value = 'C:\\ video \\ file.flv'; "、elem ); ' –

答えて

0

ボタンではなく、ファイル入力に対してsendKeys()を使用する必要があります。たとえば、HTMLでは、あなたが使用する必要があります。

findElement(By.id( "contentFileInput"))

代わりの

findElement(By.xpath( "// * [ID @ = 'contentFileInputUploader 「] "))

問題が解決しない場合は、ここで見てみる必要があります。

http://saucelabs.com/blog/index.php/2012/03/selenium-tips-uploading-files-in-remote-webdriver

関連する問題