簡體   English   中英

無法使用Selenium上傳文件

[英]Cannot upload file with 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選擇器是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更改value屬性:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM