Загрузка локальных файлов с помощью браузера с помощью Protractor - PullRequest
0 голосов
/ 01 мая 2019

У меня есть простой скрипт, который пытается загрузить файл прямо в мое приложение. Этот тест отлично работает на моей локальной установке (win10 + chrome 73), однако при запуске через локальный стек браузера (который, как я понимаю, устанавливает безопасное соединение с моей локальной машиной), я получаю следующую ошибку.

Failed: invalid argument: File not found : C:\correctPath/correctFileName.zip
[Chrome #01]         (Session info: chrome=73.0.3683.86)
[Chrome #01]         (Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)

Я печатаю следующие подтверждения, поэтому я знаю, что пути правильные.

Code

Который производит

[Chrome #01] File Path: C:\correctPath/correctFileName.zip
[Chrome #01] File exists: true

Они печатаются до возникновения сбоя.

Примечание: Я могу запустить тесты, которые не требуют тонкой загрузки файлов.

Я новичок в стеке браузеров, поэтому, может быть, мне чего-то не хватает. Любая помощь или совет будут оценены.


Ответ:

Кори указал мне правильный путь своим ответом. Мне нужно было добавить следующие две строки в мой файл onPrepare в моем конфигурационном файле, и теперь я могу загрузить нормально.

const remote = require('selenium-webdriver/remote');
await browser.setFileDetector(new remote.FileDetector());

1 Ответ

1 голос
/ 01 мая 2019

см. Раздел «Детектор локальных файлов» по ​​адресу: https://seleniumhq.github.io/docs/remote.html

Детектор локальных файлов

Детектор локальных файлов позволяет передавать файлы с клиентского компьютера наудаленный сервер.Например, если тест должен загрузить файл в веб-приложение, удаленный WebDriver может автоматически передать файл с локального компьютера на удаленный веб-сервер во время выполнения.Это позволяет загружать файл с удаленного компьютера, на котором выполняется тестирование.

...