java - 无法使用 Selenium 上传文件

标签 java selenium webdriver

我正在尝试上传 pdf 文件,但它抛出异常:

Exception in thread "main" org.openqa.selenium.WebDriverException: unknown error: cannot focus element

下面是代码:

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"); 
    }
}

关于java - 无法使用 Selenium 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54840349/

相关文章:

java - 有没有办法先在主窗口上搜索 webelement,如果找不到,然后开始在 iframe 内搜索?

ruby - 使 headless 浏览器停止加载页面

java - 配置未重新加载

java - Spring mongodb @DBRef 查询在基本查询中搜索父字段

javascript - 如何使用 Python 和 Selenium 获取链接的 onclick "action"?

java - 是否可以断言元素的组合

python - 绕过 Microsoft Edge 上的 Selenium Webdriver 安全证书页面

php - 如何使用 Selenium webdriver 获取浏览器 sessionId

java - 如何修复 SOAPUI 中不受支持的 major.minor 版本 52.0

java - 如果在 Tomcat 7 中禁用了 TRACE、OPTIONS http 方法,如何进行测试