使用JMeter的Web Driver Sampler上传文件夹遇阻求助
JMeter WebDriver Sampler 文件夹上传问题解决建议
确认元素类型与路径正确性
先检查file_input_instructions是否为<input type="file">标签,只有这类原生文件上传元素才能通过sendKeys直接传入路径。同时核对路径拼写:你步骤中写的是C:\Download\IMG,但代码里用了C:\\Downloads\\IMG,确认文件夹实际路径是Download还是Downloads,确保路径存在且当前用户有读取权限。添加元素等待避免操作过早
可能元素未完全加载就执行了sendKeys,可以显式等待元素可点击后再操作:var wait = new org.openqa.selenium.support.ui.WebDriverWait(WDS.browser, java.time.Duration.ofSeconds(10)); var fileInput = wait.until(org.openqa.selenium.support.ui.ExpectedConditions.elementToBeClickable(org.openqa.selenium.By.id('file_input_instructions'))); fileInput.sendKeys('C:\\Download\\IMG');配置浏览器允许文件夹上传
部分浏览器(如Chrome)默认限制文件夹上传,需在WebDriver配置中添加启动参数开启文件系统访问API:var chromeOptions = new org.openqa.selenium.chrome.ChromeOptions(); chromeOptions.addArguments("--enable-file-system-access-api"); // 可选:禁用自动化提示避免干扰 chromeOptions.setExperimentalOption("excludeSwitches", ["enable-automation"]); WDS.browser = new org.openqa.selenium.chrome.ChromeDriver(chromeOptions);处理系统级文件选择弹窗
如果点击按钮后弹出的是系统原生文件选择窗口(而非网页元素),Selenium无法直接操作,可使用Java Robot类模拟键盘输入:// 点击选择文件按钮 WDS.browser.findElement(org.openqa.selenium.By.id('file_input_instructions')).click(); // 等待弹窗加载 java.lang.Thread.sleep(2000); var robot = new java.awt.Robot(); // 输入路径:C:\Download\IMG robot.keyPress(java.awt.event.KeyEvent.VK_C); robot.keyRelease(java.awt.event.KeyEvent.VK_C); robot.keyPress(java.awt.event.KeyEvent.VK_COLON); robot.keyRelease(java.awt.event.KeyEvent.VK_COLON); robot.keyPress(java.awt.event.KeyEvent.VK_SLASH); robot.keyRelease(java.awt.event.KeyEvent.VK_SLASH); var pathParts = ["Download", "IMG"]; pathParts.forEach(function(part) { for (var i = 0; i < part.length; i++) { var charCode = java.awt.event.KeyEvent.getExtendedKeyCodeForChar(part.charAt(i)); robot.keyPress(charCode); robot.keyRelease(charCode); } robot.keyPress(java.awt.event.KeyEvent.VK_SLASH); robot.keyRelease(java.awt.event.KeyEvent.VK_SLASH); }); // 按回车确认选择 robot.keyPress(java.awt.event.KeyEvent.VK_ENTER); robot.keyRelease(java.awt.event.KeyEvent.VK_ENTER);
内容的提问来源于stack exchange,提问作者MAX GRIMM
相关产品推荐
相关产品推荐

