Selenium + Python. При загрузке файла (любого типа) он загружается с размером 0.

downloadfile
python
selenium
Теги: #<Tag:0x00007fedc75e4ef0> #<Tag:0x00007fedc75e4db0> #<Tag:0x00007fedc75e4c70>

(Roma Zaporozhets) #1

В одном из проектов столкнулся с проблемой, файл загружаеться, но его размер 0.

Инпут стандартный, даже пробовали верстать пустую страницу и там вставляли инпут, результат все тот же =(
Пример Инпута:

 <body>
        <input id="upload" name="upload" type="file" data-qa="qa-upload-input" onchange="upload(this.files)">
        <script>
            function upload(files) {
                console.log("ON UPLOAD");
                console.log("File size: ", files[0].size);
            }
        </script>
        
        ${analytics ? renderGoogleTagManagerFrame() : ''}
        ${spriteHtml}
        ${body}
        ${renderScripts(scripts)}
      </body>
      </html>

Пример реализации загрузки файла:

 self.driver.find_element_by_css_selector("[data-qa='qa-upload-input']").send_keys("/home/user_name/workspace/project/test_selenium/test_files/Key-6.dat")

Кроме этого проекта, есть еще 2 и там такая реализация работает…
Не могу понять что именно не так.
Есть предположение, что файл 0 размера, потому что он грузится в браузер, а не записываться в базу или еще куда-то, но это предположение.

Пробовал менял локаторы, Инпуты свои верстать, даже такое http://joxi.ru/gmvRNGYfLgn0gm.jpg

Если у кого будут идеи и предложения, буду очень рад, а то сейчас зашел в тупик.

Кстати, если загружать руками через эту форму - файл грузится корректно. Знаю про https://www.autoitscript.com/site/autoit/

Но хотелось без нее обойтись.
Спасибо за внимание.


#2

Попробуй тест через какой-нибудь прокси запустить (burp suite, например), посмотри, там реальные данные летят вообще? Как выглядит post запрос?


(Bolatbek) #3

Может дело в правах?


(Roma Zaporozhets) #4

не думаю что прокси поможет, но попробую.


(Roma Zaporozhets) #5

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


(Horuk Taras) #6

Я не знаю як в Pyton, але в Java мені допомогло закриття стріма.


(Roma Zaporozhets) #7

Немного не понял про закрытие стрима, типа закончить тест ?


(Roma Zaporozhets) #8

Это был баг webdriver с обновлением все получилось