Загрузка файла с помощью 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
Примечание. Возможно, вам потребуется преобразовать приведенный выше код на язык разработки.