Можно ли с помощью Casper.js принимать запросы на разрешение браузера?

Я надеюсь проверить функциональность WebRTC в моем веб-приложении. Для этого необходимо принять разрешение браузера на доступ к камере и / или микрофону. Можно ли это сделать с помощью Casper.js и Slimer.js? Я не могу найти ничего в документации, предполагающей, что это выполнимо.

Несколько связано (похожая проблема, другая платформа): Примите диалог разрешения браузера с помощью behat/mink

1 ответ

Решение

Хотя вы не можете программно нажать кнопку разрешения, CasperJS/SlimerJS позволит вам использовать собственный профиль для автоматизированного экземпляра Firefox, который вы используете в своих тестах. По крайней мере, в случае запросов разрешения WebRTC/getUserMedia, Firefox позволяет отключить их в настройках профиля.

Вот что ты делаешь. В вашей оболочке используйте SlimerJS для создания нового профиля:

slimerjs --createprofile nameOfYourNewProfileGoesHere

Ваш новый профиль был создан в вашем каталоге профилей Firefox. Чтобы найти каталог, вы можете либо найти имя профиля, которое вы только что создали, либо перейти к Firefox и Help Menu > Troubleshooting Information, Рядом с "Папкой профиля" нажмите "Показать в Finder" (или эквивалент для вашей платформы).

Ваш профиль - это каталог с таким именем asfd1234.nameOfYourNewProfileGoesHere Внутри этого каталога отредактируйте prefs.js файл и добавьте эту строку:

user_pref("media.navigator.permission.disabled", true);

Теперь, когда вы запускаете свои скрипты CasperJS (или SlimerJS напрямую, я полагаю - я проверял это только через Casper), вам просто нужно указать профиль. С CasperJS:

casperjs test --engine=slimerjs -P nameOfYourNewProfileGoesHere nameOfYourTestFile.js

Это почти слишком просто!;)

Другие вопросы по тегам