2016-07-27 89 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