python在selenium网页模拟运行过程中需要打开文件夹上传文件的情况的解决方法

在selenium运行过程中,可能会遇到网页需要上传文件图片等情况,有时可以直接用selenium中send_keys直接上传,但是有时不行,这时我们需要用到另一个包,pywinauto
具体的代码如下,

import pywinauto
# pywinauto模拟操作键盘,需要使用到 pywinauto.keyboard.send_keys这个方法
# 需要注意的是Pywinauto库的send_keys方法与selenium库的send_keys方法不同,输入的键盘操作关键字存在较大差异
from pywinauto.keyboard import send_keys
folder = 'xxxxx' #文件夹地址
file = 'xxxxx' #文件名
# 使用pywinautoc创建一个操作桌面窗口的对象
win1 = pywinauto.Desktop()
# 选择文件上传的窗口 窗口句柄默认为‘打开’
bow1 = win1['打开']
# 选择文件地址输入框,点击激活
bow1["Toolbar3"].click()
# 键盘输入上传文件的路径
send_keys(folder)
# 键盘输入回车,打开该路径
send_keys("{VK_RETURN}")
# 选中文件名输入框,输入文件名
bow1["文件名(&N):Edit"].type_keys(file)
# 点击打开
bow1["打开(&O)"].click()

运行情况是模拟手动点击上传按钮,在文件夹中选择文件。期间不能手动触碰鼠标键盘。
因为是在selenium模拟网页运行的代码中的,所以上面需要连接
web.find_element(By.XPATH,‘xxxxxxxxxxx’).click()等使用,
就是说,先用selenium模拟点击上传按钮,然后再使用上面的代码模拟上传文件。
代码中只需要修改folder和file,其他的不要动。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-21 20:24:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-21 20:24:04       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-21 20:24:04       78 阅读
  4. Python语言-面向对象

    2024-04-21 20:24:04       88 阅读

热门阅读

  1. GoLang学习-Redis实现MQ功能

    2024-04-21 20:24:04       29 阅读
  2. 北邮计算机,宿舍六个人的24届就业情况分享。

    2024-04-21 20:24:04       33 阅读
  3. 使用mac自带服务器(一行命令即可启动)

    2024-04-21 20:24:04       35 阅读
  4. 大模型日报2024-04-20

    2024-04-21 20:24:04       49 阅读
  5. Linux常用命令

    2024-04-21 20:24:04       31 阅读
  6. 【数学】常用等价无穷小及其注意事项示例

    2024-04-21 20:24:04       40 阅读
  7. CentOS常见的命令

    2024-04-21 20:24:04       40 阅读
  8. 常用渗透测试checklist

    2024-04-21 20:24:04       30 阅读
  9. 关于DDD设计模式的各种疑问:什么是DDD架构?

    2024-04-21 20:24:04       30 阅读
  10. iOS Delegate receiver 如何返回值给 sender

    2024-04-21 20:24:04       33 阅读