aerokube / images

Browser images for Selenoid and Moon 1.x
https://aerokube.com/images/latest/
Apache License 2.0
171 stars 127 forks source link

Failed to upload file/files. Image selenoid/chrome:latest #169

Open dvgorod opened 5 years ago

dvgorod commented 5 years ago

Hi.

Autotests on Ruby.

browser.json with "image": "selenoid/chrome" and docker pull with selenoid/chrome:latest (at now is ver. 75) and fileinput_element.send_keys(xls_file_absolute_path_without_spaces_on_latin) raise Selenium::WebDriver.. UnknownCommandError: session/<id>/se/file #0 0x....

But when return image back on: "image": "selenoid/vnc:chrome_68.0" Work good.

vania-pooh commented 5 years ago

@gorod4512 with Chrome 75.0 its driver now implements a W3C-compatible protocol. Could you try with the latest Python Selenium client library version?

dvgorod commented 5 years ago

@vania-pooh Английский - боль)). Короче, после того как подобрал работающие конфиги и запуск - решил добавить разные версии браузеров, чтоб было.. ну и разумеется протестировал загрузку файлов на том что интересовало.. и вот следующие результаты: selenoid container :latest-release

Chrome 75.0 its driver now implements a W3C-compatible protocol. Could you try with the latest Python Selenium client library version?

Свежее только альфа.. 4.0 gem selenium-webdriver 3.142.3 - May 21, 2019 https://rubygems.org/gems/selenium-webdriver

Как резюме могу предположить что текущая реализация веб-драйвера для рубей действительно не доведена до ума(что странновато) и надо ковырять исходники для запила хуков или еще чего..

vania-pooh commented 5 years ago

@gorod4512 должно просто идти в /file.

dvgorod commented 5 years ago

Похоже на то.. вот как раз видимо разрабы драйвера ссылаются вроде на устаревшую доку.. и в доке то числится эндпоинт как раз /se/file но с т.з. свежей доки действительно должно быть просто /file https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Remote/W3C/Bridge

а вот вроде актуальная дока с w3c но там нет эндпоинта для файла.. но вот как раз следуя их логике должно быть без /se/ https://www.w3.org/TR/webdriver1/#list-of-endpoints

dvgorod commented 5 years ago

Да, решено.. проблема в https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Remote/W3C/Bridge нужно поменять upload_file: [:post, 'session/:session_id/se/file'] на upload_file: [:post, 'session/:session_id/file'] Тогда заработает загрузка на всех образах на которых падало).. и 75 chrome)... и 65я ff)..

dvgorod commented 5 years ago

@vania-pooh Хоба что выше говорят:

https://github.com/SeleniumHQ/selenium/issues/7362#issuecomment-508797363

И вообщем то плюсую к автору).. я тоже не видел жестких спеков на это дело у W3C) И как писал в телеге - загрузка прекрасно работала на скопе селениум грид).. и отвалилась только после переезда на селеноид)

dvgorod commented 5 years ago

@vania-pooh Товарищи, Вы бы хоть черканули пару строк).. Похоже проблему то вы решили, так, как selenium регламентировал?)

aandryashin commented 5 years ago

У нас реализована ручка /file и то только для firefox'a... Потому что в других драйверах это реализовано...

пт, 2 авг. 2019 г., 21:40 gorod4512 notifications@github.com:

@vania-pooh https://github.com/vania-pooh Товарищи, Вы бы хоть черканули пару строк).. Похоже проблему то вы решили, так, как selenium регламентировал?)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/aerokube/selenoid-images/issues/169?email_source=notifications&email_token=AAKY23JY66A4JK7IJCPHLP3QCR5RRA5CNFSM4H53IJW2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3ORFTA#issuecomment-517804748, or mute the thread https://github.com/notifications/unsubscribe-auth/AAKY23MDVMFNM7FL45ZW3QTQCR5RRANCNFSM4H53IJWQ .

dvgorod commented 5 years ago

Ну вот не знаю)... но на Ruby ругается что хром не знает такой команды с приставкой /se/

А пока временно сделал на проектах хук/хелпер переопределив константу

https://www.rubydoc.info/gems/selenium-webdriver/Selenium/WebDriver/Remote/W3C/Bridge нужно поменять upload_file: [:post, 'session/:session_id/se/file'] на upload_file: [:post, 'session/:session_id/file'] Тогда заработает загрузка на всех образах на которых падало).. и 75 chrome)... и 65я ff)..