Как обрабатывать всплывающие окна для загрузки файла на машине с Linux, используя скрипт selenium - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь автоматизировать всплывающее окно Windows для загрузки файлов в селене и хочу запустить скрипт в LINUX.

Существуют такие инструменты, как autoIT, JACOB, которые могут обрабатывать подобные всплывающие окна, но они нене работает на LINUX напрямую.

Мне нужна помощь в любом инструменте, который выполняет эту работу.

Я пробовал AutoIT, но из-за autoIt exe не смог запустить код на linux. Затем я попробовал JACOB, но для использования jacob необходимо сохранить два .dll-файла, а также провел некоторое исследование и обнаружил, что Linux не поддерживает .dll, он поддерживает .so, и, поскольку я очень новичок в Linux, у меня нет идентификаторов, как выполнятьthis.

 private void fileUploadData(String fileName) {
    String workingDir = "";
    AutoItX uploadWindow = new AutoItX();;
    try {

        workingDir = System.getProperty("user.dir");

        final String jacobdllarch = 
System.getProperty("sun.arch.data.model")
       .contains("32") ? "jacob-1.18-x86.dll" : "jacob-1.18-x64.dll";
        String jacobdllpath = workingDir + "/" + jacobdllarch;

        File filejacob = new File(jacobdllpath);
        System.setProperty(LibraryLoader.JACOB_DLL_PATH,
                           filejacob+System.getProperty("user.dir"));
    }
    catch(Exception e) {
        e.printStackTrace();      
    }
    String filepath = workingDir + "\\src\\test\\resources\\testdata\\" + 
fileName ;
    File file=new File(filepath);
    try {
        file.createNewFile();
    } catch (IOException e1) {
        e1.printStackTrace();
    }

    browseButton.click();
    uploadWindow.winActive( "File Upload", "" );

    uploadWindow.sleep(2000);
    uploadWindow.ControlSetText( "Open", "", "Edit1", filepath); 
    uploadWindow.controlClick( "", "", "&Open" );
}

Ошибка получения приведенного ниже кода в коде LINUX работает нормально в Windows - Неудовлетворенная ошибка ссылки: нет jacob-1.18-x64 в java.library.path: [/ usr / java / packages / lib,/ usr / lib64, / lib64, / lib, / usr / lib]

...