Загрузка файла с помощью webdriverio v5 в msedge - PullRequest
0 голосов
/ 17 марта 2020

Я запускаю тест автоматизации в sauceLabs, используя webdriverio v5. Я хочу запустить тест, который загружает файл в msedge. Ниже приведен пример кода для того же.

const path = require('path');
const filePath = path.join(__dirname, 'path/to/your/file');
const remoteFilePath = browser.uploadFile(filePath);
$('upload file input selector').setValue(remoteFilePath);

Этот код прекрасно работает с chrome и firefox, но когда я пытаюсь запустить то же самое в msedge, это дает Error: The uploadFile command is not available in msedge. Похоже, browser.uploadFile работает только для chrome. Я пробовал разные вещи, но решения работают в основном на локальном, а не на удаленном сервере, как sauceLabs.

Есть ли альтернатива для browser.uploadFile или какой-либо обходной путь, который можно использовать для загрузки файла в браузере msedge?

1 Ответ

0 голосов
/ 17 марта 2020

По соображениям безопасности, browser.uploadFile недоступен для IE и Edge браузеров.

Я предлагаю вам попробовать выполнить тест с примером кода ниже.

Сначала он находит элемент загрузки файла, а затем использует sendkeys () для установки значения пути в элементе управления.

// fetch the element
WebElement input = driver.findElement(By.XPath("//input[@type='file']"));
// send file path keys
input.sendKeys(path);

Если проблема не исчезнет, ​​попробуйте следующий пример.

// fetch the element
WebElement input = driver.findElement(By.XPath("//input[@type='file']"));

// run JS to reveal the element
JavascriptExecutor executor = (JavaScriptExecutor)driver;
executor.executeScript("arguments[0].style.display = 'block';", input);

// send file path keys
input.sendKeys(path);

Ссылка:

Selenium о том, как загружать файлы в Microsoft Edge

Примечание. Возможно, вам понадобится преобразовать приведенный выше код в язык разработки.

...