Я видел, что у многих людей возникают проблемы с загрузкой файла в тестовую среду с помощью 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);
И это все. Это работает для меня, я надеюсь, что это работает для некоторых из вас.