Python+Selenium如何随机选取txt文件读取文本并完成自动输入
问题说明
原有代码的核心错误是对open()函数的用法有误:Python内置的open()方法单次仅支持打开一个文件,不支持同时传入多个文件路径参数,因此无法实现多文件随机选择读取的预期效果。
修正后实现方案
实现逻辑拆解:
- 先将所有caption类txt文件的路径统一存入列表
- 调用
random.choice()从路径列表中随机选中一个目标文件 - 用
with上下文管理器打开选中文件读取全量文本,自动释放文件句柄,避免资源泄漏 - 按原有业务逻辑完成剪贴板复制、随机等待、Selenium定位输入的操作
*注意点:
- 原代码中
random.randrange(5,6)只会返回固定整数5,如果需要5-6秒区间的随机时长(包含小数秒),需要替换为random.uniform(5,6) - 新版Selenium已废弃
find_element_by_css_selector这类旧定位API,推荐使用By类指定定位方式的新写法,避免版本兼容报错*
完整可运行代码如下:
import random import time import pyperclip from selenium.webdriver.common.by import By # 所有caption文件路径统一维护在列表中,后续新增文件直接追加即可 caption_files = [ "caption-1.txt", "caption-2.txt", "caption-3.txt", "caption-4.txt" ] # 随机选一个文件读取内容 selected_file = random.choice(caption_files) with open(selected_file, "r", encoding="utf-8") as f: caption_text = f.read() # 复制内容到剪贴板 pyperclip.copy(caption_text) clipboard_content = pyperclip.paste() # 随机等待5-6秒 time.sleep(random.uniform(5, 6)) # 定位文本域输入内容 caption_input = driver.find_element(By.CSS_SELECTOR, "textarea._ablz._aaeg") caption_input.send_keys(clipboard_content)
内容的提问来源于stack exchange,提问作者Bobby Wibowo
相关产品推荐
相关产品推荐

