如何在Selenium IDE Web Driver中通过指定XPath实现PDF上传自动化测试?
Selenium IDE 实现PDF文件上传自动化测试方案
核心原理
Selenium体系中无需模拟点击唤起系统文件选择弹窗,直接对type="file"的原生输入框传入文件本地绝对路径即可完成上传操作,你已经完成了上传控件的XPath定位,可直接按照下方步骤配置:
Selenium IDE 可视化操作步骤
- 提前准备测试用PDF文件,复制其对应测试运行设备上的绝对路径(Windows路径格式为
C:\测试目录\测试文件.pdf,macOS/Linux路径格式为/home/xxx/测试目录/测试文件.pdf) - 打开对应测试用例,新增一条命令,命令项选择
type(部分版本显示为send keys) - 「目标」输入框填入你已配置的定位规则:
xpath=//input[@id='inputGroupFile03'] - 「值」输入框填入准备好的PDF文件绝对路径
- 若页面上传后需要手动点击确认提交,可额外新增一条
click命令,定位到提交按钮执行即可
注意事项
- 不要提前对该上传input元素执行
click命令,否则会唤起系统原生文件选择窗口,Selenium IDE无法操作系统原生控件,会导致测试中断- 确保测试运行设备上该PDF路径真实有效、文件未被占用,且后缀为.pdf符合上传规则
- 如果页面将原生file input设为隐藏状态(用于自定义上传按钮样式),可先新增一条
execute script命令,脚本内容填arguments[0].style.display = 'block';,目标同样填该input的XPath,将元素改为可见状态后再执行上传操作
Selenium WebDriver 代码示例(Python)
如果是基于代码编写WebDriver自动化用例,可参考以下实现:
from selenium import webdriver from selenium.webdriver.common.by import By # 初始化驱动 driver = webdriver.Chrome() driver.get("替换为你的测试页面访问地址") # 定位上传控件并传入文件路径 upload_input = driver.find_element(By.XPATH, "//input[@id='inputGroupFile03']") upload_input.send_keys("替换为你的PDF文件绝对路径") # 按需新增提交操作 # driver.find_element(By.XPATH, "替换为提交按钮的定位规则").click()
内容的提问来源于stack exchange,提问作者mohd sohail
相关产品推荐
相关产品推荐

