要素のあるページがあります:
<div class="block-title-inside">
<a href="javascript:void(0);" class="block-title-link fright" style="display:block; overflow: hidden; width: 105px;">Upload video <span class="blue-arrow-right"></span>
<input type="file" name="file" id="videoUpload" class="dpt-mediafile-input-button" style="z-index: 999"></a>
Videos</div>
「添付」ボタンがないため、上記の「ビデオのアップロード」ボタンをクリックすると、アップロードするファイルを選択できるネイティブ OS ウィンドウが表示されます。
Selenium WD を使用してファイルをアップロードできず、次のような単純なコードが機能しません。
driver.findElement(By.id("videoUpload")).sendKeys("D://Other//sample_videos//barsandtone.FLV");
driver.findElement(By.id("videoUpload")).click();
問題は、サイトが jQuery アップロード スクリプトを使用していることにあるようです。関連するJSコードの部分は次のとおりです。
- http://www.speedyshare.com/DEXEQ/main.js (スクリプト自体はゲスト ユーザーには表示されません)
- 2 つのリンクを分けてください: __http://www.dailypreptalk.com/components/com_dpt/assets/file-upload/js/jquery.fileupload.js">http://www.dailypreptalk.com/components/com_dpt/assets /file-upload/js/vendor/jquery.ui.widget.js_ _ _http://www.dailypreptalk.com/components/com_dpt/assets/file-upload/js/jquery.fileupload.js
私はjsコードを実行しようとしました:
js.executeScript("document.getElementById('videoUpload').value = 'D://Other//sample_videos//barsandtone.FLV'");
js.executeScript("document.getElementById('videoUpload').click()");
しかし、まだ結果はありません。jQueryコードを使用してウィンドウを初期化しようとしましたが、チャンスもありませんでした:
js.executeScript("dpt.jQuery('#videoUpload').value = 'D://Other//sample_videos//barsandtone.FLV'");
js.executeScript("dpt.jQuery('#videosModal').modal('show');");
事前に入力されたファイル パスを使用して jQuery アップロード ウィジェットを初期化する方法がわかりません。
助けてくれてありがとう!