Одно решение для загрузки файлов с использованием Java Robot API с Selenium WebDriver на Java

Я видел, что у многих людей возникают проблемы с загрузкой файла в тестовую среду с помощью Selenium WebDriver. Я использую Selenium WebDriver и java, и у меня была такая же проблема. Я наконец нашел решение, поэтому я опубликую его здесь, надеясь, что оно поможет кому-то другому.

Когда мне нужно загрузить файл в тесте, я нажимаю Webdriver на кнопку и жду, пока не откроется окно «Открыть». Затем я копирую путь к файлу в буфер обмена, затем вставляю его в «открытое» окно и нажимаю «Enter». Это работает, потому что, когда всплывает окно «открыть», фокус всегда находится в кнопке «открыть».

Вам понадобятся эти классы и методы:

import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.Toolkit;
import java.awt.datatransfer.StringSelection;


public static void setClipboardData(String string) {
   StringSelection stringSelection = new StringSelection(string);
   Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection, null);
}

И это то, что я делаю сразу после открытия «открытого» окна:

setClipboardData("C:\\path to file\\example.jpg");
//native key strokes for CTRL, V and ENTER keys
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);

И это все. Это работает для меня, я надеюсь, что это работает для некоторых из вас.

21
задан Ripon Al Wasim 29 March 2016 в 13:27
поделиться