Как загрузить файл в безголовый браузер, используя класс робота в селене java

Как загрузить файл в безголовый браузер, используя класс робота в selenium java, поскольку метод sendkeys() не работает в моем случае. Я использую Firefox и веб-драйвер Selenium java для своего скрипта.


person sufiya    schedule 09.02.2017    source источник
comment
Обязательно ли загружать файл с помощью robot class? Вы пробовали с AutoIT?   -  person Jainish Kapadia    schedule 09.02.2017
comment
Нет необходимости Пожалуйста, дайте мне знать, как загрузить с помощью AutoIT   -  person sufiya    schedule 09.02.2017


Ответы (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