Файл загрузки Selenium: файл не найден [docker] - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть следующий метод загрузки изображения с использованием селена.

public static void uploadSampleImage(StaticSeleniumDriver driver)
{
    File file = new File(System.getProperty("user.dir") + "/resources/images/" + SAMPLE_DOCUMENT_FILE_NAME);
    Utils.Log("file exists: " + file.exists());

    String imagePath = file.getAbsolutePath();
    WebElement input = driver.findElement(By.name("file"));
    input.sendKeys(imagePath);
}

Это стандартный способ подачи пути к файлу (, как описано в руководстве по Guru99 ) для загрузки файла.

  1. Работает нормально при локальном тестировании на windows
  2. НЕ работает при запуске внутри контейнера докера (linux), получая эту ошибку:

org.openqa.selenium.InvalidArgumentException: недопустимый аргумент: файл не найден: /usr/src/app/resources/images/image2.png (информация о сеансе: chrome = 72.0.3626.81) (информация о драйвере: chromedriver = 2.46.628388 (4a34a70827ac54148e092a4a7070e), platform = Linux 4.9.125-linuxkit x86_64) (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о трассировке стека)

Что странно, поскольку я уверен, что файл существует в данном каталоге (в моем методе выше,Я проверяю, существует ли файл, и журнал четко подтверждает это)

enter image description here

Любые предложения приветствуются, спасибо

1 Ответ

0 голосов
/ 21 февраля 2019

Для RemoteWebDriver необходимо установить детектор файлов driver.setFileDetector(new LocalFileDetector());.Ваш код:

public static void uploadSampleImage(StaticSeleniumDriver driver)
{
    driver.setFileDetector(new LocalFileDetector());
    File file = new File(System.getProperty("user.dir") + "/resources/images/" + SAMPLE_DOCUMENT_FILE_NAME);
    Utils.Log("file exists: " + file.exists());

    String imagePath = file.getAbsolutePath();
    WebElement input = driver.findElement(By.name("file"));
    input.sendKeys(imagePath);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...