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