首页 > 解决方案 > 无法使用 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 文件。谁能帮我解决这个问题?

标签: javaseleniumwebdriver

解决方案


要上传文件,您必须使用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"); 
    }
}

推荐阅读