Java 无法使用Selenium上载文件

Java 无法使用Selenium上载文件,java,selenium,webdriver,Java,Selenium,Webdriver,我正在尝试上载pdf文件,但它引发了一个异常: 线程“main”org.openqa.selenium.WebDriverException中的异常: 未知错误:无法聚焦元素 代码如下: public class FileUploadPopUp { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "G://ChromeDriver//chromed

我正在尝试上载pdf文件,但它引发了一个异常:

线程“main”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
选择器是一个
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"); 
    }
}

如果文件输入不可编辑-您可以尝试使用JS更改
属性:

((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('value', 'F:\\Selenium Complete Notes.pdf');", element);

非常感谢。我有一个疑问。在这种情况下,我们必须选择id中包含包装器的div?输入[type=file]…即使html标记不包含type属性,也可以使用它吗?要使用Selenium上载文件,您必须使用具有file type的输入