问答 【提问】有没有工具能够识别 linux 系统内 chrome 浏览器开无头模式时,linux 的文件上传框内的元素

lzm01 · 2024年11月21日 · 最后由 鲨鱼辣椒 回复于 2024年11月21日 · 591 次阅读

如题,UI 自动化需要识别 linux 文件上传框中的元素进行文件上传
直接找到 button 下面的 input sendkey 就行了

共收到 2 条回复 时间 点赞

顶顶,我在 window 上用的 pyautowin 库能够识别 windows 的文件上传框,但是 Linux 上不知道咋弄了

来自 Kimi:
如果文件上传框是系统级别的而不是前端元素,那么使用传统的 Web 自动化工具(如 Selenium、Puppeteer、Playwright)可能无法直接与之交互。在这种情况下,可以考虑以下几种方法来处理系统级别的文件上传框:

1. 使用 xdotoolydotool

xdotoolydotool 是 Linux 下的命令行工具,可以模拟键盘和鼠标事件。您可以使用这些工具来模拟文件路径的输入和回车键的按下。

安装 xdotool

sudo apt-get install xdotool

示例脚本

# 模拟输入文件路径
xdotool type /path/to/your/file.txt
# 模拟按下回车键
xdotool key Return

2. 使用 pyautogui

pyautogui 是一个 Python 库,可以用来模拟鼠标和键盘操作。它可以在系统级别进行操作,适用于处理系统级别的文件上传框。

安装 pyautogui

pip install pyautogui

示例脚本

import pyautogui
import time

# 等待文件上传框出现
time.sleep(2)  # 根据实际情况调整等待时间

# 输入文件路径
pyautogui.write('/path/to/your/file.txt')

# 按下回车键
pyautogui.press('enter')

3. 使用 AutoKey

AutoKey 是一个脚本化的自动化工具,可以在 Linux 下模拟键盘和鼠标操作。它可以编写复杂的脚本来处理各种自动化任务。

安装 AutoKey

sudo apt-get install autokey-gtk

创建脚本

  1. 打开 AutoKey GUI。
  2. 创建一个新的脚本。
  3. 编写脚本内容,例如: python keyboard.send_keys("/path/to/your/file.txt") keyboard.send_keys("<enter>")

4. 使用 xte(X Test Extension)

xte 是一个命令行工具,可以发送 X11 事件,模拟键盘和鼠标操作。

安装 xte

sudo apt-get install xautomation

示例脚本

# 模拟输入文件路径
xte 'str /path/to/your/file.txt'
# 模拟按下回车键
xte 'key Return'

总结

以上方法都可以在系统级别模拟文件上传操作。选择哪种方法取决于您的具体需求和环境。xdotoolxte 是轻量级的命令行工具,适合简单的任务;pyautoguiAutoKey 提供了更丰富的功能,适合复杂的自动化任务。

lzm01 关闭了讨论 11月21日 13:40
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册