2016-10-13 5 views
1

私はセレンを使って自動化されたブラウザを構築していますが、完璧に動作しています! (ありがとう、セレン(:) 私は実行する必要がある手順の1つはファイルをアップロードすることです。ファイルをアップロードする際に問題が発生します。Pythonでファイルエクスプローラをナビゲートするのに問題がある

私はアップロードに使用するコードで、 、次のとおりです。また、試してみました

file_input = driver.find_element_by_id('ImageUploadButton') 
file_input.send_keys('C:\\image.jpg') 

driver.find_element_by_id('ImageUploadButton').click() 
driver.find_element_by_css_selector('input[type="file"]').clear() 
driver.find_element_by_css_selector('input[type="file"]').send_keys('C:\\image.jpg') 

これは多くの人々のために働くようだが、私にとって、それはちょうど私がアップロードしたいファイルを選択するために私のためのファイルエクスプローラを開き、それだけです。エラーメッセージは表示されず、コードの実行が続行されます。

誰かが私がファイルエクスプローラをナビゲートしてファイルを送信するために使用できる別のモジュールを知っていますか?

またはセレンを不適切に使用していますか?ウェブサイトから

-----------編集---------------

追加DIV:

<div id="FileInputWrapper" class="file-input-wrapper"> 
    <input id="FileUploadInput" type="hidden" name="file"> 
    <button id="ImageUploadButton" class="button-update-cancel short file-upload-button" type="button" style="position: relative; z-index: 1;"> Select Images</button> 
    </div> 
<input type="hidden" name="images"> 
<div id="html5_1auv7g94u187l1qdq108d1ue5qve3_container" class="moxie-shim moxie-shim-html5" style="position: absolute; top: 518px; left: 0px; width: 155px; height: 45px; overflow: hidden; z-index: 0;"> 
<input id="html5_1auv7g94u187l1qdq108d1ue5qve3" type="file" accept="image/jpeg,image/png,image/gif,image/bmp" multiple="" style="font-size: 999px; opacity: 0; position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;"> 
</div> 
+1

:あなたはないbuttoninput要素を、処理する必要があります。 – gplayer

+0

ターゲット要素の 'HTML'コードなしで提案をするのは難しいです。適切なコードサンプルで質問を更新してください。また、「多くの人のために働く」という意味を明確にしてください。あの人たちはだれ?あなたのコードは正常に使用されていますか? – Andersson

+0

ええ、私は同意します、申し訳ありません、追加されたHTMLサンプル – willer2k

答えて

2

があなたのようですファイルをアップロードするために間違ったロケータを使います。私はあなたがsend_keysにパスを送った後、アップロードボタンをクリックしなければならないと思います

file_input = driver.find_element_by_xpath('//input[@type="file"]') 
file_input.send_keys('C:\\image.jpg') 
+0

驚くばかり!あなたは絶対に正しい! – willer2k

+0

誰かが同じ問題を抱えている場合 – willer2k

+0

問題は「要素(driver.find_element_by_id( 'ImageUploadButton')。click())をクリックしないで、Anderssonが誤ったロケータを使用していました。 – willer2k

関連する問題