アップロードスレッド数が多かったが、回答が見つかりませんでした。誰かが助けてくれますか? 私は自分の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を得ました。誰かが私ができることをお勧めしますか?私は本当に立ち往生している。前もって感謝します。
をなぜあなたはボタンにキーを送信しますか?ファイルをアップロードするフローは何ですか?最初にボタン>標準のアップロードファイルダイアログが表示されたら、OKをクリックし、あなたのウェブサイトにファイルをアップロードします。私は正しいですか? –
その溶液は別のポストによって提供された。私はそれがこの特定のタイプのボタンでは機能しないことを指摘しています。あなたの前提に間違いはありませんが、ダイアログが表示されたときに、この場合はclickメソッドはこのオブジェクトでは機能しません。そして、たとえそれが窓を開けたとしても、その時はもはや支配権を持ちません。誰でもアイデアはありますか? – twsel
おそらく上記の要素で遊ぶべきです。セレンIDEで試してみてください: 'type | contentFileInput | C:\\ video \\ file.flv'。もしそれがうまくいくなら、あなたは値を入力するためにJavaScriptを使うべきでしょう: '((JavascriptExecutor)driver).executeScript(" arguments [0] .value = 'C:\\ video \\ file.flv'; "、elem ); ' –