Почему не могу загрузить файл через WebDriver?

Ссылка скопирована
1 ответ

Я пытаюсь загрузить файл примрено так, как это описано в примере: tests/functional/FileUploadTest.php

Мой код (отрывок):

case 'file-input':     echo sprintf("nPath: %s", $field['data']);     echo sprintf("nFile exists: %sn", file_exists($field['data']));      if (!isset($field['data']))         return false;      if (!$this->timeStop($field['xpath']))         return false;      $file_input = $this->driver->findElement(WebDriverBy::xpath($field['xpath']));     $file_input->setFileDetector(new LocalFileDetector());     $file_input->sendKeys($field['data']);      if (isset($field['sleep']))         sleep($field['sleep']);      break;

case 'file-input': echo sprintf("nPath: %s", $field['data']); echo sprintf("nFile exists: %sn", file_exists($field['data'])); if (!isset($field['data'])) return false; if (!$this->timeStop($field['xpath'])) return false; $file_input = $this->driver->findElement(WebDriverBy::xpath($field['xpath'])); $file_input->setFileDetector(new LocalFileDetector()); $file_input->sendKeys($field['data']); if (isset($field['sleep'])) sleep($field['sleep']); break;

Вывод:

2023-09-14T09:10:02.806739804Z Path: /var/www/html/yii-application/src/backend/controllers/../../../../cache/ip_0142eb_svidetelstvo.jpg 2023-09-14T09:10:02.806739805Z File exists: 1

2023-09-14T09:10:02.806739804Z Path: /var/www/html/yii-application/src/backend/controllers/../../../../cache/ip_0142eb_svidetelstvo.jpg 2023-09-14T09:10:02.806739805Z File exists: 1

Суть проблемы:
Каждый сайт, на который я пытаюсь загрузить в input свой файл - выдает ошибку загрузки. Неважно какой сайт, просто выдает. Причем, сам файл не битый, спокойно открывается. И зачастую в форме даже указано имя файла, но вот сама загрузка не идет на сервер (куда загружаю файл).

Вкладка Network (DevTools) не дает особых данных в этом вопросе

Примечание:
Сам WebDriver и PHP вообще ни о каких ошибках не говорит. Ошибки на принимающей стороне, или может быть в чем-то другом. Утверждать не могу

Дополнительно:

Используется Octo Browser для работы Selenium. Ползунок в профиле (Local Storage) стоит на ON

  • Famper Wasteland, ну напишите свой код и отправьте файл на него и посмотрите он вообще отправляет файл или нет
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Никита Орлов Ответ

    Проблема загрузки файла через WebDriver может возникать по нескольким причинам. Вот несколько возможных решений:

    1. Проверьте, правильно ли указан путь к файлу, который вы пытаетесь загрузить. Убедитесь, что путь указан абсолютно и не содержит ошибок.

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

    3. Проверьте наличие файла-загрузчика в вашем проекте. Некоторые браузеры требуют наличия специального файла-загрузчика для загрузки файлов через WebDriver. Убедитесь, что этот файл доступен и правильно сконфигурирован.

    4. Проверьте настройки безопасности вашего браузера. Некоторые браузеры могут блокировать загрузку файлов из-за настроек безопасности. Убедитесь, что ваш браузер разрешает загрузку файлов.

    5. Попробуйте использовать абсолютный путь к файлу вместо относительного. Некоторые браузеры требуют использования абсолютного пути для загрузки файлов.

    Вот пример использования WebDriver для загрузки файла в PHP:

    $driver->findElement(WebDriverBy::id('fileUpload'))->sendKeys('/absolute/path/to/file.txt');

    $driver->findElement(WebDriverBy::id('fileUpload'))->sendKeys('/absolute/path/to/file.txt');

    Если проблема сохраняется после применения этих решений, попробуйте обновить WebDriver до последней версии или обратитесь к документации по использованию WebDriver для вашего конкретного браузера.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно