Selenium 请教下大佬们 selenium 出现如图报错,怎么解决哇(图一是功能和元素,图二是代码,图三是指定绝对路径图片上传,没有任何反应)求大佬们指点迷津

变成风才和我相遇 · 2023年03月16日 · 最后由 变成风才和我相遇 回复于 2023年03月17日 · 7961 次阅读

图一


图二
time.sleep(1.5)
elem = driver.find_element('xpath', "/html/body/div[5]/div/div[2]/div/div[2]/div[2]/form/div[1]/div[1]/div/div[2]/div[2]/div/div/div/div[2]/div/div/div[2]/div/div/div/div/div/span/div/div").click()
time.sleep(5)
elem = driver.find_element_by_xpath('//*[id="fileinput1"]').send_keys('/Users/liaossss/210F2130512J47-0-lp.jpeg')
图三

最佳回复

有且只有上传文件的框是 input 类型的, 才有可能使用 send_keys 方法完成上传, 你这个上传肯定不能用 send_keys

仅楼主可见
共收到 13 条回复 时间 点赞

有且只有上传文件的框是 input 类型的, 才有可能使用 send_keys 方法完成上传, 你这个上传肯定不能用 send_keys

xpath 表达式比较长且具体,这可能使其更加脆弱,如果网页的结构发生变化,该表达式容易出错。

用 playwright 啊,selenium 过时了

Tester_谜城 回复

我是把文件上传看做一个输入框,通过 send_keys() 传入本地文件的路径来实现上传。但是最后压根就实现不了,大佬,请问一下,有什么方法可以建议一下嘛

抓取到的元素都是用封装后的,只能抓 xpath

6楼 已删除

@ 咖啡咖 感觉 drisssion 比 playwright 好用 可以试试

看你用的好像是 mac, 这个我只在 Windows 下用 pywin32 解决过, mac 的没有研究过, 但问题应该就是不能使用 send_keys() , 可以查找下 mac 有没有相关的解决方案

Tester_谜城 回复

好滴,谢谢

还有一种方法是模拟 mac 的快捷键来实现, 但是实际执行的时候可能会不太稳定, 可以参考一下实现思路


直接定位这个 input 框,然后 send_keys

仅楼主可见
lyyyyyyy 回复

我试试

仅楼主可见
变成风才和我相遇 关闭了讨论 05月05日 15:50
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册