1.文件框在网页在顶层框架中可以使用浏览器cdp协议中的DOM.setFileInputFiles方式获取文件框CSS选择器的方式上传文件。
此方式不能跨框架或同网页跨域的方式获取文件框CSS选择器的nodeId,进而不能上传文件路径(可以跨框架上传文件,但未找到合适的方式解决)。
还有一些网页文件框的设计把其隐藏的太深或通过点击动态加载的,无法获取固定的文件框CSS选择器,进而不能上传文件路径。
见:
https://getquicker.net/QA/Question/33247
2.模拟手动点击文件框上传文件
因为弹出的文件上传框有一些特性,我们可以使用它的这些特性上传文件(其地址栏
可以输入一个完整的文件路径:C:\Users\Administrator\Desktop\44.png
也可以输入多个完整文件路径:"C:\Users\Administrator\Desktop\44.png" "C:\Users\Administrator\Desktop\11.png" "C:\Users\Administrator\Desktop\33.png"
好像也可以上传不在同一文件夹的文件路径:"C:\Users\Administrator\Desktop\11\44.png" "C:\Users\Administrator\Desktop\22\11.png" "C:\Users\Administrator\Desktop\33.png"
多文件路径之间可以加一个空格,也可以不加,但路径与路径之间必须要加"",以实际情况为准
再点击确实按钮上传文件)
请确保文件路径完整,文件真实存在
以下是一个子程序: 由用户 huanggc66 子程序 https://getquicker.net/subprogram?id=6209b967-3b1a-426e-0554-08dc0558572f 改的
https://getquicker.net/subprogram?id=752727d8-29fa-4657-ab3d-08dd9b57a84b
可能会出现文件路径错误,而报错,待优化