Как загрузить файл используя метод Robot на Mac OS (Selenium WD + Java + JUnit)?

213
24 мая 2018, 15:00

Код кнопки загрузки файла:

<button class="panel-box-header__controls-bttn bttn-icon js-doc-upload" type="button">
        <svg class="icon icon-clip">
            <use xlink:href="#icon-clip"></use>
        </svg>
    </button>

При клике кнопку открывается стандартное окно с файлами.

Метод driver.findElement(By.xpath("...")).sendKeys("path"); тут не работает.

Частый пример загрузки файла используя метод Robot тоже не отработал:

    public void upload() throws Exception {
        uploadButton.click();
        Thread.sleep(2000);
//File Need to be imported
        File file = new File("/Users/admin/Desktop/test_image.jpg");
        StringSelection stringSelection= new StringSelection(file.getAbsolutePath());
//Copy to clipboard
        Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
        Robot robot = new Robot();
// Cmd + Tab is needed since it launches a Java app and the browser looses focus
        robot.keyPress(KeyEvent.VK_META);
        robot.keyPress(KeyEvent.VK_TAB);
        robot.keyRelease(KeyEvent.VK_META);
        robot.keyRelease(KeyEvent.VK_TAB);
        robot.delay(500);
//Open Goto window
        robot.keyPress(KeyEvent.VK_META);
        robot.keyPress(KeyEvent.VK_SHIFT);
        robot.keyPress(KeyEvent.VK_G);
        robot.keyRelease(KeyEvent.VK_META);
        robot.keyRelease(KeyEvent.VK_SHIFT);
        robot.keyRelease(KeyEvent.VK_G);
//Paste the clipboard value
        robot.keyPress(KeyEvent.VK_META);
        robot.keyPress(KeyEvent.VK_V);
        robot.keyRelease(KeyEvent.VK_META);
        robot.keyRelease(KeyEvent.VK_V);
//Press Enter key to close the Goto window and Upload window
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
        robot.delay(500);
        robot.keyPress(KeyEvent.VK_ENTER);
        robot.keyRelease(KeyEvent.VK_ENTER);
    }

При запуске теста с методом Robot - происходит клик на кнопку "uploadButton", открывается окно с файлами но дальше ничего не происходит.

Возможно у кого-то есть рабочее решение подобной проблемы загрузки файла? Используя метод Robot или любой другой вариант

READ ALSO
Интеграция IBM Watson

Интеграция IBM Watson

Всем приветКто нибудь работал с Ibm Cloud или Watson? Попытаюсь пояснить суть с помощью картинок

223
Как код для Activity корректно вставить в Fragment?

Как код для Activity корректно вставить в Fragment?

Проблема в том, чтобы отладить работу контактной формы в FragmentНужно сделать, чтобы при нажатии на кнопку формы "Отправить заявку" формировалось...

389
NavController с sharedElementTransition

NavController с sharedElementTransition

В презентации google i/o 2018 анонсировали интересную фичу NavController, я понимаю что фиче всего несколько дней, но может кто-то сталкивался как связать...

203