Я видел, что у многих людей возникают проблемы с загрузкой файла в тестовой среде с помощью Selenium WebDriver. Я использую Селен WebDriver и Java, и была та же проблема. Наконец-то я нашел решение, поэтому я опубликую его здесь, надеясь, что оно поможет кому-то еще.
Когда мне нужно загрузить файл в тесте, я нажимаю кнопку Webdriver и жду, пока не откроется окно «Открыть». Затем я копирую путь к файлу в буфере обмена, а затем вставляю его в «открытое» окно и нажимаю «Ввод». Это работает, потому что когда всплывает окно «открыть», фокус всегда находится на кнопке «открыть».
Вам понадобятся эти классы и метод:
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);
И это все. Это работает для меня, я надеюсь, что это работает для некоторых из вас.