java - 无法使用 Selenium 上传文件
问题描述
我正在尝试上传 pdf 文件,但它引发了异常:
线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:无法聚焦元素
下面是代码:
public class FileUploadPopUp {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "G://ChromeDriver//chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://pdf2doc.com/");
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.id("pick-files")).sendKeys("F:\\Selenium Complete Notes.pdf");
}
}
这是为了自动执行文件上传操作。我想上传一个 pdf 文件。谁能帮我解决这个问题?
解决方案
要上传文件,您必须使用input
具有文件类型的元素,但您的pick-files
选择器是 a div
,这就是您收到错误的原因。使用input[type=file]
CSS 选择器:
public class FileUploadPopUp {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "G://ChromeDriver//chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://pdf2doc.com/");
driver.findElement(By.cssSelector("input[type=file]")).sendKeys("F:\\Selenium Complete Notes.pdf");
}
}
推荐阅读
- python - 如何在python中添加列表的总和
- sql-server - sql server 如何分隔全名
- postgresql - Docker - Postgres 和 pgAdmin 4:连接被拒绝
- data-structures - 可以仅使用哈希表来实现队列吗?
- jquery - 将类添加到“li”,其中包含“a”的href
- spring - 如何使用 spring-cloud-contracts 的存根启动一个独立的wiremock?
- php - php - 如何将变量增加 100
- reactjs - 使用 call([context, fnName], ...args) 时的流类型警报 redux-saga
- javascript - ES6 自定义元素继承
- java - 从对象的对象创建 Json 对象模板