2016-07-27 154 views
0

HTML隱藏輸入上傳文件:與硒的webdriver的Python

<div id="js-cert-file" class="form-group"> 
<button id="js-ob-browse-n-upload" class="btn btn-ob browse-and-upload-onboarding-ssl-button" style=""> BROWSE & UPLOAD </button> 
<input id="js-cert-file" class="hidden btn btn-ob" type="file" accept=".p12, .pem, .pfx" name="file"> 
<input id="file-name" type="text" disabled="" value="File Name" style="display:none"> 
</div> 

我曾嘗試上傳使用XPath和CSS選擇器而不是能夠做到這一點,因爲輸入的是隱藏文件。我花了幾天的時間在這個問題上敲了敲頭,但仍然無法弄清楚,所以認爲是時候請專家了,請幫忙!

問題在於,我想上傳文件時沒有點擊「瀏覽並上傳」按鈕,但正如我說的,由於輸入被隱藏,我無法做到這一點。

在這裏,我的Python代碼:

BrowseAndUpload = driver.find_element_by_xpath("/html/body/div[3]/div/div[2]/div/div/div[1]/div[1]/input[1]") 
clickBrowseAndUpload.send_keys('file full path') 

回答

0

儘量讓輸入字段可見和上傳文件,下面的代碼:

driver.execute_script('document.getElementById("js-cert-file").style.visibility="visible";') 
driver.execute_script('document.getElementById("js-cert-file").style.display="block";') 
driver.find_element_by_xpath('//input[@id="js-cert-file"]').send_keys('file full path') 
+0

我已嘗試也,但沒有運氣。我沒有得到任何錯誤消息,但該文件不會上傳。它表示該文件不受支持,但上傳文件爲.p12擴展名。林不知道爲什麼作爲即時通訊新的 – user6645934

+0

如果rty手動上傳您的文件發生同樣的錯誤? – Andersson

+0

不,我成功地能夠做到手動 – user6645934