#java #forms #selenium #web #browser
#java #формы #selenium #веб #браузер
Вопрос:
Я пишу Java-приложение, которое имеет одно назначение: заполнить и отправить форму на веб-странице (без отображения графического интерфейса браузера). Для этого я выбрал Selenium.
Однако, как мне «упаковать» или «отправить» необходимые браузеры Seleniums с моим приложением? Т.Е. Для Selenium требуется исполняемый файл браузера для запуска webdriver. Я не знаю, какой браузер использует моя целевая аудитория. Как мне отправить свое приложение для запуска на любом клиентском компьютере Windows, не требуя от них ручной установки браузера?
Или я на неверном пути, и есть лучший вариант, чем selenium, для удовлетворения моих потребностей?
Комментарии:
1. поскольку вы не показываете графический интерфейс, HtmlUnit идеально подойдет для этого.
2. Ну, я попробовал HtmlUnit, но все равно не смог заставить его работать. Я прочитал в источнике, что HtmlUnit устарел, и вместо него следует использовать Selenium. Проблема с HtmlUnit заключалась в том, что, по-видимому, у него есть проблема с малейшим несовершенством Java script (например, неопределенная переменная), что имеет место с моим целевым веб-сайтом / формой. Хотя несовершенство JS никак не влияет на сайт, HtmlUnit всегда выдавал исключение, когда я жаловался на это.
3. более поздние версии намного лучше поддерживают javascript… он всегда выдает много ошибок, но Selenium их игнорирует. Когда вы говорите «вместо этого следует использовать Selenium», я не уверен, что вы имеете в виду. Вы будете использовать HtmlUnit с Selenium. Итак, «driver = new HtmlUnitDriver();» Ваш другой вариант — включить архивированную версию браузера в свои ресурсы и извлечь ее во время выполнения. Предостережение в том, что вам обычно нужно запустить его один раз, чтобы инициализировать все, что вам нужно для использования Selenium с ним. Итак, после извлечения вы запускаете браузер. (Я делаю это для поддержки XP с помощью Chrome49)
4. Slimjet — это то, что я использую для этого: slimjet.com/chrome/google-chrome-old-version.php (Если вы используете 49, вам также необходимо использовать более старую версию Selenium и более старую версию chromedriver …)
5. Ах, я вижу, у меня было неправильное представление о HtmlUnit. Итак, это простой браузер, который можно использовать с Selenium, верно? Если вы имеете в виду, что более поздние версии намного лучше, вы имеете в виду новейшие версии HtmlUnit? Я был совершенно уверен, что использовал новейший, но не смог избежать ошибки Java script. Как мне сделать так, чтобы HtmlUnit игнорировал ошибку? Я думаю, что это было бы самым аккуратным решением, но оно должно было бы работать с этим слегка ошибочным js на моем целевом сайте.