我无法上传和保存图片。
以下是使用UI促进文件上传的代码段。首先,只有上传按钮可见,一旦从上传器中选择了图像,就可以看到保存按钮。
<td colspan="1" class="actions">
<input type="button" class="button" name="logo" id="logo-f-upload" value="Upload Image"/>
<input type="file" id="logo-upload" accept="image/*" name="logo-upload" style="display:none" />
<input type="submit" value="click to save" name="submit_logo_now" class="main submit_dm logo-save-focused" style="display: none"/>
</br>
</td>
我尝试了driver.find_element_by_id("logo-f-upload").send_keys(os.getcwd()+"/image_test.png")
以及
driver.find_element_by_id("logo-upload").send_keys(os.getcwd()+"/image_test.png")
但是它不会在这个阶段抛出任何错误,但是在下一个它说“元素不可见......”即。保存按钮。在UI上,模拟此时,文件上传器不会打开,但file_upload按钮值会更改为图像的路径,然后会中断。
答案 0 :(得分:1)
我相信这只是一个JS hack的答案:问题是logo-upload
输入的样式设置为display:none
,因此,selenium无法找到元件。适用于我的解决方案是使用javascript将样式设置为display:block
,之后使用send_keys(img_path)
工作正常。
dr.execute_script("document.getElementById('logo-upload').setAttribute('Style','display:block')")