at io.github.bonigarcia.wdm.BrowserManager.handleException(BrowserManager.java:233)
at io.github.bonigarcia.wdm.BrowserManager.manage(BrowserManager.java:198)
at io.github.bonigarcia.wdm.BrowserManager.handleException(BrowserManager.java:231)
at io.github.bonigarcia.wdm.BrowserManager.manage(BrowserManager.java:198)
at io.github.bonigarcia.wdm.BrowserManager.setup(BrowserManager.java:726)
at com.codeborne.selenide.webdriver.WebDriverBinaryManager.setupBinaryPath(WebDriverBinaryManager.java:21)
at com.codeborne.selenide.webdriver.WebDriverFactory.createWebDriver(WebDriverFactory.java:45)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.createDriver(WebDriverThreadLocalContainer.java:227)
at com.codeborne.selenide.impl.WebDriverThreadLocalContainer.getAndCheckWebDriver(WebDriverThreadLocalContainer.java:111)
at com.codeborne.selenide.WebDriverRunner.getAndCheckWebDriver(WebDriverRunner.java:135)
at com.codeborne.selenide.impl.Navigator.navigateToAbsoluteUrl(Navigator.java:66)
at com.codeborne.selenide.impl.Navigator.open(Navigator.java:32)
at com.codeborne.selenide.Selenide.open(Selenide.java:79)
at com.codeborne.selenide.Selenide.open(Selenide.java:53)
at ru.smbp.tvhouse.editor.SampleTest.name(SampleTest.java:32)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:73)
at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:83)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
Не совсем понятно, зачем вебдрайвер лезет на гитхаб, и как заставить его этого не делать?
Версии ОС и софта следующие selenide 4.9.1, Spring Boot 2.0.5
Он хочет скачать геккодрайвер для фаерфокса.
Вы можете сами скачать нужную для вас версию Releases · mozilla/geckodriver · GitHub и положить в папку с проектом.
Рядом с помником - автоматом будет подтягиваться.
Либо куда хотите (ресурсы и т.п.) - нужно сетить системную переменную webdriver.gecko.driver с путём до драйвера - Usage — Firefox Source Docs documentation
У меня нет возможностей открывать доступ к внешним сервисам, все машины находятся за прокси. + на билд сервере, который вообще находится во внутренней сети, никаким образом не откроют доступ во внешнюю сеть.
Интересная политика - билд-сервер и без доступа во внешнюю сеть…
Как же вы зависимости тянете? Костылями типа своего нексуса?
По-моему как раз-таки билд сервер и должен иметь выход во внешнюю сеть. А собираться всё должно вообще в контейнерах докера, например.
После чего уже артефакты сборки кочуют туда, куда им следует…
Так что следует посмотреть в сторону налаживания инфраструктуры - начальству написать, например, что всё через одно место организовано и это мешает процессу тестирования в том числе.
Никто не мешает сис. админами выдать доступ к конкретным сайтам конкретным машинам.
А вот городить костыли можно всегда успеть. Попробуйте решить проблему правильным путём - объяснением людям, отвечающим за выдачу доступа во внешнюю сеть, что это необходимо.
Вполне нормальная история, когда билд-сервер и без интеренета нормального
Работал одно время в банке одном. Там служба безопасности имело очень много влияния. И вот если безопасники сказали “никакого интернета”, то сисадмины ничем не помогут
И крутитесь как хотите
Да, не везде департаменты работают слаженно для общей цели.
Так что ситуацию автора вполне понять можно
По поводу проблемы
If you use another webdriver (or a custom WebDriverProvider ), WebDriverManager will not be used, and you will continue working as previously.
Вопрос теперь в том, чтобы скормить ему кастом провайдер и тогда не будет пытаться скачать
Никакие кастомные провайдеры не нужны. Положите драйвер в папку с проектом и в setUp() методе засетайте пропертю System.setProperty("webdriver.gecko.driver", "Path to driver" и все.
по- моему такая ситуация во всех больших конторах, запретить все, что можно. Программировать через RDP на виртуалках в защищенной сети. А тут про билд сервер говорят с выходом в интернет.
Это политика банков, где СБ не блокирует, а разрешает что-то из всего заблокированного
В нормальных компаниях люди понимающие, что доступ к таким вещам как гитхаб должен быть открыт
Никакие кастомные провайдеры не нужны. Положите драйвер в папку с проектом и в setUp() методе засетайте пропертю System.setProperty("webdriver.gecko.driver", "Path to driver" и все.
И ещё правильный вопрос прозвучал. @All_Safe хотелось бы услышать ваш ответ: как же вы остальные зависимости подтягиваете без доступа к интернету - тот же самый selenide-4.9.1.jar?
@asolntsev расскажите пожалуйста как правильно локальный artifactory собрать все - особенно со злым жадным springboot проектом. - чтоб не требовался выход в паблик итнернет.
Ну так это вопрос к вашей службе безопасности. Они ставят нелепые требования. Ну установите вы свой локальный artifactory. И что они, будут вручную проверять все джарники и XML, которые вы попросите туда положить?
По-любому кто-то должен закидывать в artifactory нужные зависимости, и ему по-любому нужен для этого выход в интернет.
Artifactory обычно используют, чтобы
кэшировать зависимости из центрального мавеновского репозитория (вдруг они оттуда пропадут)
Складывать туда свои джарники, которые хочется переиспользовать между проектами.
я хотел услышать ваше авторитетное мнение как предотвратить скажем меняеш minor version у одной из зависимостей и как спастись он новой кучи прилетающего хлама…
померять просто:
find ~/.m2/repository/ -type d |wc
и видишь позорные груды
5808 5808 407168
(и это несмотря на периодический purge)
уберечься сложно
кстати я не полностью уверен что соглашусь c утверждением что требования службы безопастности нелепые.
Б! Безопасность!
Я лично предполагаю, что возможно условным “Касперским” jar-ники проверяют
Сам работаю в подобной конторе, поэтому, когда нужно заюзать новую либу, то “молюсь”, чтоб в локальной копии публичного мавена оказалась не совсем протухшая зависимость.