Как загрузить файл в безголовый браузер, используя класс робота в selenium java, поскольку метод sendkeys() не работает в моем случае. Я использую Firefox и веб-драйвер Selenium java для своего скрипта.
Как загрузить файл в безголовый браузер, используя класс робота в селене java
Ответы (2)
Нет необходимости использовать класс Robot для загрузки файла с помощью selenium java. Сначала (1) загрузите свои файлы в папку /tmp в случае Linux и временную папку в случае ОС Windows, а затем используйте приведенный ниже код для загрузки файлов.
String path = FILE_UPLOAD_PATH;
//(Full path with file name from /tmp folder)
driver.findElement(By.id("FILE_INPUT_ID")).sendKeys(path);
и он загрузит файл.
Примечание. Удалите файл из папки /tmp после загрузки, если нет необходимости освобождать память.
person
Chirag Shah
schedule
18.01.2019
public static void setClipboardData(String string) {
StringSelection stringSelection = new StringSelection(string);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection,null);
}
setClipboardData(path);
//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);
Примечание. Если вы используете безголовые браузеры, такие как chrome или phantomjs, класс робота возьмет на себя управление текущим окном и отправит путь в нем. Также, если вы используете autoIT, скрипт будет ожидать появления активного окна. поэтому, очевидно, сценарий будет приостановлен и не сможет найти следующий элемент.
Скрипт АвтоИТ
WinWaitActive("Open")
Send(@ScriptDir & "\logo.png")
Send("{ENTER}")
person
Bhuvan varan
schedule
18.07.2017
robot class
? Вы пробовали сAutoIT
? - person Jainish Kapadia   schedule 09.02.2017