Не удалось загрузить файл с помощью всплывающего окна загрузки файлов Windows, попытался использовать класс Java Robot

Я пишу тестовый пример автоматизации для загрузки файла с помощью Java Selemium. Моя проблема в том, что когда я нажимаю кнопку загрузки, появляется всплывающее окно загрузки файла Windows. Я попытался использовать класс Robot для отправки пути к файлу во всплывающем окне, он ничего не печатает, я думаю, он не может установить фокус во всплывающем окне. Пробовал также использовать driver.switchTo().alert().

Мой код выглядит следующим образом:

List<WebElement> elecount = driver.findElements(By.xpath("//div/img[@title='Insert pictures inline']"));
        elecount.get(1).click(); //opens the Windows popup


        StringSelection stringSelection = new StringSelection("File path");
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
        try{
            Robot robot = new Robot();
            robot.keyPress(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_V);
            robot.keyRelease(KeyEvent.VK_CONTROL);
            robot.keyPress(KeyEvent.VK_ENTER);
            robot.keyRelease(KeyEvent.VK_ENTER);
        }

Спасибо заранее.


person Vinay Jaiswal    schedule 14.05.2020    source источник


Ответы (1)


Попробовав немного, нашел решение, есть абсолютный Xpath, который можно использовать для прямой отправки пути к файлу для загрузки. Вот код:

File a = new File(System.getProperty("user.dir")+"ваш абсолютный путь"); //В моем случае файл существует в каталоге проекта.

Абсолютная строка = a.getCanonicalPath();

WebElement addfile = driver.findElement(By.xpath(".//input[@type='file']")); //Этот абсолютный Xpath используется для прямой загрузки файла без необходимости открывать всплывающее окно загрузки файла Windows.

addfile.sendKeys (абсолютный);

person Vinay Jaiswal    schedule 14.05.2020