Загрузка файла APK с помощью Selenium - PullRequest
0 голосов
/ 27 мая 2019

Я борюсь с одной проблемой в моем тесте. Я пытаюсь загрузить файл APK, но когда дело доходит до этого шага, ничего не происходит.

Я уже пробовал простые sendKeys с путем к файлу и использованием скрипта AutoIT, но оба они не работают.

Здесь ввод:

<button uib-tooltip-html="uploadTooltip" ng-if="(privileges.update &amp;&amp; !uploadForm.$visible) || createNew" ng-click="this.value = null;" ng-file-select="uploadFile($files, uploadForm)" class="btn btn-xs btn-default ng-scope ng-isolate-scope" ng-disabled="status.disabled || progressPercentage" type="button" style="overflow: hidden;">
<i class="fa fa-fw fa-upload"></i>
        <input type="file" tabindex="-1" ng-file-generated-elem="true" style="width: 1px; height: 1px; opacity: 0; position: absolute; padding: 0px; margin: 0px; overflow: hidden;">
<input type="file" tabindex="-1" ng-file-generated-elem="true" style="width: 1px; height: 1px; opacity: 0; position: absolute; padding: 0px; margin: 0px; overflow: hidden;">
</button>

И что я пробовал (также используя строку с полным путем для sendKeys):

String filePath = System.getProperty("user.dir") + "src\\test\\APK\\com.airbnb.android.apk";
        tryToClearAndSendKeysForSeconds(5, UPLOAD_FILE_BUTTON, filePath); // method for sendKeys with wait, locator and string
Runtime.getRuntime().exec("C:\\Users\\IdeaProjects\\Automated_Tests\\src\\test\\APK\\FileUpload.exe");

AutoIT:

ControlFocus(“Open”,””,”Edit1″)
ControlSetText(“Open”,””,”Edit1″,”D:\HDimage\profile.jpeg”)
ControlClick(“Open”,””,”Button1″)

Я не уверен, должен ли я нажимать кнопку загрузки перед отправкой файла, когда дело доходит до sendKeys, но когда я делаю это (я использую win 10, кстати): enter image description here

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 27 мая 2019

Пожалуйста, следуйте инструкциям, чтобы загрузить APK или любой файл:

a) Загрузите ваш файл в каталог tmp на сервере для временного резервного копирования. как

String path = FILE_UPLOAD_COMMON_PATH + File.separatorChar + file.getName();

try(FileOutputStream fileOutputStream = new FileOutputStream(path)){
    fileOutputStream.write(bs); // byte[] bs
}catch(Exception e) {
    throw e;
}

b) Теперь получите из каталога tmp и загрузите файл, используя драйвер, как,

String path = FILE_UPLOAD_COMMON_PATH + File.separatorChar + file.getName();
driver.findElements(By.id("files")).get(0).sendKeys(path);

Пусть это решит вашу проблему.

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