问答 selenium 如何上传本地文件或图片

凯凯王✨ · 2021年09月08日 · 最后由 凯凯王✨ 回复于 2021年09月10日 · 3137 次阅读

selenium 如何上传本地文件或图片

共收到 3 条回复 时间 点赞

java ,直接 sendkey("a/b/c/a.txt") 。 当然的看下 你前端实现方式

  1. input 类型的就 send_key 的方式,如 #1 所说
  2. 如果是通过前端自己实现的组件上传的,试下用 Autoit 脚本自己封装生成一个 exe,然后调用给这个 exe,我用的 python,通过传参 *args 可以选择多个文件,再调用 os.system("upload.exe F://xyz/a.jpg b.png") 这种方式去调用起上传窗口,可以实现多个文件选择上传,再处理一下文件不存在异常的情况,就应该可以符合你需求了。
# 大致思路
 def uploading_file(self, element, *fileName):
     path = get_dirabspath() + '\\comment\\upload.exe '
     self.click_element(element)
     # select_pic() 实现F://xyz/a.jpg b.png 多个文件的绝对地址即可
     os.system(path + select_pic(*fileName))  

au3 的脚本大概如下:

ControlFocus("打开","","Edit1")
;识别windows窗口
WinWait("[CLASS:#32770]","",10)
;窗口等待十秒
ControlSetText("打开", "", "Edit1",$CmdLineRaw)
;想输入框中输入需要上传的地址
Sleep(2000)
ControlClick("打开", "","Button1");
;点击[打开】按钮
lulu 回复

ok,已解决,这个 autoid 我之前一直用火狐作为 selenium 驱动,没想到不兼容,换成谷歌驱动,执行 autoid 的程序就可以了,

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册