Как щелкнуть и обработать диалоговое окно, которое появляется в IE при загрузке файла? - PullRequest
0 голосов
/ 04 октября 2018

Я хочу автоматизировать тестирование с использованием селена webdriver в Java.Я автоматизирую загрузку файла, но не могу обработать диалоговое окно сохранения в виде всплывающего окна при загрузке в IE. По ссылке, которую показывает IE, чтобы сохранить или открыть файл из всплывающего окна.enter image description here

 driver.findElement(By.xpath("//img[@alt='145.36KB File Size']")).click();

1 Ответ

0 голосов
/ 04 октября 2018

Первая загрузка autoit: https://www.autoitscript.com/site/autoit/ Добавьте его в путь в переменных Windows env, чтобы его можно было выполнить из командной строки.

Пример пути:

C:\ Program Files (x86) \ AutoIt3

Вот пример метода, который обрабатывает сценарии auto it.

public static void saveFileInternetExplorer() throws Exception {

        String pathToAutoItScript = "C:\\save_file_IE11.au3";
        String command = "AutoIt3.exe " + pathToAutoItScript;
        System.out.println("AutoIt command: " + command );
        String output = new CommandLine(command).executeGetOutput();

        if (output.contains("ERROR")) {
            throw new Exception("AutoIt script error: " + output);
        }

        System.out.println(output);
    }

Скрипт AutoIt для сохранения файла в IE 11

  • save_file_IE11.au3

Sleep(5000)

    Local $hIE = WinGetHandle("[Class:IEFrame]")
    Local $hCtrl = ControlGetHandle($hIE, "", "[ClassNN:DirectUIHWND1]")

    If WinExists($hIE,"") Then
        WinActivate($hIE,"")
        ControlSend($hIE ,"",$hCtrl,"{F6}")          ; Gives focus to Open Button
        Sleep(500)
        ControlSend($hIE ,"",$hCtrl,"{TAB}")          ; Gives focus to Save Button
        Sleep(500)
        ControlSend($hIE ,"",$hCtrl,"{enter}")        ; Submit whatever control has focus
    EndIf
Sleep(3000)

После нажатия на кнопку загрузки запустите скрипт autoit3, который должен сохранить файл.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...