Как избавиться от разрешения «веб-сайту» запускать «серебряный свет»? оповещение в firefox с использованием профиля firefoxprofile в веб-драйвере

При использовании API-интерфейсов робота для перетаскивания мои позиции мыши нарушаются (запуск Firefox в полноэкранном режиме) предупреждением, которое спрашивает «Разрешить запуск Silverlight?». Это предупреждение влияет даже на API моего веб-драйвера, поскольку щелчок, который должен произойти на одной кнопке, выполняется на другой.

Я использую WebDriver для автоматизации своего сценария в сочетании с API-интерфейсом робота для перетаскивания. Есть ли способ установить что-то в профиле firefox, чтобы это предупреждение не появлялось?

На изображении ниже показано предупреждение

https://drive.google.com/file/d/0B36CJTZFg52aUFhvWmZIVzNleEk/view?usp=sharing


person Bala    schedule 10.11.2014    source источник


Ответы (2)


Вы можете создать новый профиль Firefox

http://www.toolsqa.com/selenium-webdriver/custom-firefox-profile/

Открыв менеджер профилей Firefox и нажав кнопку добавления профиля, вы можете назвать его. Затем вам нужно открыть этот профиль в FireFox, загрузить плагин Silverlight, установить его и перейти в диспетчер плагинов Firefox.

https://helpdesk.contentraven.com/hc/en-us/articles/201455107-Mozilla-Firefox-and-Silverlight-Plug-In

в менеджере вам нужно будет установить плагин silverlight как Always Activate.

Затем вам нужно просто вызвать этот профиль при вызове драйвера:

ProfilesIni profile = new ProfilesIni();

FirefoxProfile your_profile = profile.getProfile("<name of your profile>");

WebDriver driver = new FirefoxDriver(your_profile);
person y3zier    schedule 10.11.2014
comment
Я думаю, что вы неверно истолковали вопрос. Он просит установить предпочтения профиля таким образом, чтобы плагин Silverlight не мешал автоматизации. - person Subh; 10.11.2014
comment
Да, и всегда активировать опцию в пользовательском профиле, это предотвратит это. - person y3zier; 11.11.2014
comment
Спасибо за решение, оно сработало для меня, но Субх правильно понял мой вопрос. Я хотел что-то похожее на этот profile.setPreference(browser.fullscreen.autohide,true);, который будет всегда активировать надстройку Silverlight. - person Bala; 11.11.2014

В Windows вы можете сделать:

// Enable Silverlight
profile.setPreference("plugin.state.npctrl", 2);

И на OS X:

// Enable Silverlight
profile.setPreference("plugin.state.silverlight", 2);

В Windows имя DLL — npctrl.dll, поэтому я считаю, что именно отсюда происходит «npctrl». Вы можете увидеть это из:

about:plugins

Для Linux вам придется проверить. Откройте две вкладки по одной для:

about:addons

А другой для:

about:config

В about:addons активируйте подключаемый модуль Silverlight всегда.

В about:config фильтр по 'plugins.state'. Элемент, который изменяется при изменении состояния активации в about:addons, — это элемент, который вы добавляете в профиль FireFox.

person watsonmw    schedule 07.01.2015
comment
Спасибо watssonmw. Ваш ответ действительно полезен. Я хочу добавить кое-что еще для платформы Windows здесь. Нажмите about:config в firefox, вы увидите все плагины со статусом, например plugins.state.‹pluginName›. Вам нужно только выбрать полное имя как оно есть (plugins.state.‹имя вашего плагина›) и поместить его в приведенный ниже код в качестве 1-го аргумента profile.setPreference(1 args, 2); - person kailash gaur; 18.11.2015