Загрузка файла с помощью webdriverio v5 в msedge

Я провожу тест автоматизации в auceLabs, используя 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. Я пробовал разные другие вещи, но решения работают в основном на локальном, а не на удаленном сервере, таком как auceLabs.

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

1 ответ

Похоже, из соображений безопасности 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

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

Другие вопросы по тегам