与硒的webdriver的Python
问题描述:
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')
答
尽量让输入字段可见和上传文件,下面的代码:
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')
我已尝试也,但没有运气。我没有得到任何错误消息,但该文件不会上传。它表示该文件不受支持,但上传文件为.p12扩展名。林不知道为什么作为即时通讯新的 – user6645934
如果rty手动上传您的文件发生同样的错误? – Andersson
不,我成功地能够做到手动 – user6645934