Как разрешить Opera доступ к моей внутренней сети без предупреждения тестов Webdriver?

Я пишу несколько тестов Selenium WebDriver для приложения Facebook. Я запускаю тесты в Selenium Grid и вижу проблему при работе в Opera (12.15). Когда веб-приложение запускается в Facebook (или напрямую), Opera показывает страницу:

Страница в общедоступном Интернете запрашивает данные из вашей частной интрасети. По соображениям безопасности автоматический доступ заблокирован, но вы можете продолжить.

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

Есть ли способ подавить это предупреждение во время выполнения тестов? Параметр командной строки? Желаемая возможность?

Это похоже на проблему, с которой сталкивались другие люди, но я не могу найти много, если вообще что-нибудь, в Интернете.


person Mark Boxall    schedule 08.05.2013    source источник


Ответы (2)


opera:config показывает параметр «Разрешить кросс-сетевую навигацию», который вам нужен. Постоянная ссылка для него, похоже, ссылается на opera:config#Network|AllowCrossNetworkNavigation, поэтому нам нужна настройка в разделе Network, ключ AllowCrossNetworkNavigation, и, поскольку она отображается как логическая настройка, она будет принимать значения 0 и 1.

Следующая проблема заключается в программной настройке: OperaDriver имеет public OperaScopePreferences preferences(), позволяющий вам это сделать (см. " rel="nofollow">OperaScopePreferences JavaDoc).

Итак, вкратце:

OperaDriver drv;
OperaScopePreferences prefs = drv.preferences();
prefs.set("Network", "AllowCrossNetworkNavigation", "1");
person gsnedders    schedule 12.05.2013
comment
Спасибо! Мне пришлось сделать это немного по-другому, возможно, потому что я использую RemoteWebDriver. Но спасибо, что поставил меня на правильный путь. Вот мое решение: 'Профиль OperaProfile = new OperaProfile(); profile.preferences().set(Сеть, Разрешить межсетевую навигацию, 1); требуемыеCapabilities.setCapability(opera.profile, профиль);' - person Mark Boxall; 13.05.2013

Это не работает в Опере 33.0. Opera:config был заменен на opera://flags

После часа поиска я пришел к выводу, что этот параметр больше не существует ни в какой форме в настройках: opera:config#Network|AllowCrossNetworkNavigation

Самое близкое, что я смог найти, было: allow-insecure-localhost. Но это не позволяло нашему проекту, работающему на локальном хосте, разрешать навигацию по сети.

Также не увенчались успехом некоторые поиски по теме «защита от сети».

Я бы сказал, что правильным решением для 2015 года будет использование Firefox или Chrome.

person Juan Marco    schedule 02.11.2015