Тест Selenium C # с Chrome Headless - окно загрузки файла Chrome не работает - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть тест, который загружает изображение профиля в веб-приложение.Чтобы загрузить файл изображения, нажимают кнопку загрузки, которая открывает окно загрузки файла, как показано на снимке экрана ниже.

Browser file upload window

Затем тестотправляет ключи пути к файлу изображения в окно загрузки файла, чтобы загрузить файл.Когда тест выполняется в режиме без головы Chrome, окно загрузки файла не найдено и шаг отправки ключей завершается неудачно.

Если тест выполняется в обычном режиме (без опции без заголовка), тест выполняется без проблем.В чем может быть проблема?Есть ли способ это исправить?Следующий код используется для установки фокуса и отправки ключей в окно загрузки файлов браузера.

 var dialogHWnd = FindWindow("#32770", "Open"); // Title for modal. IE: "Choose File to Upload"
 var setFocus = SetForegroundWindow(dialogHWnd);
 SendKeys.SendWait(@picPath);
 Thread.Sleep(5000); //wait
 SendKeys.SendWait(@"{Enter}");
 Reporter.LogTestStepForBugLogger(Status.Info, $"Sent keys {picPath} and Enter to upload the Profile Picture.");

1 Ответ

0 голосов
/ 27 декабря 2018

С селеном вы можете просто отправить полный путь к изображению на элемент ввода, который отвечает за загрузку.

Проверьте HTML-код и найдите соответствующий, вероятно, с атрибутом «скрытый» или что-то общеедля этого раздела загрузки.

Тогда просто используйте:

driver.findElement(by.xpath('input xpath or id ..').sendKeys('path of the image in your system');
...