Как проверить, присутствует ли предупреждение на странице с JavaScript или Selenium - PullRequest
2 голосов
/ 23 марта 2019

Я создаю бота, и этот бот ищет постоянно, но иногда при поиске появляется предупреждение, запрашивающее у пользователя доступ к его местоположению. Как проверить, присутствует ли это предупреждение или, что еще лучше, отключить его?

До сих пор я пытался отключить что-то через about: config:

    var prefs = Components.classes["@mozilla.org/preferences- 
       service;1"].getService(Components.interfaces.nsIPrefBranch);

    prefs.setIntPref("network.cookie.cookieBehavior",  4);

    prefs.setBoolPref("privacy.donottrackheader.enabled", true); 

    prefs.setIntPref("permissions.default.geo", 2);

Но предупреждения все еще появляются. Я также попытался создать новый профиль Firefox с предустановленными надстройками, просто чтобы блокировать диалоговые окна и всплывающие окна, но он по-прежнему дает мне диалоговые окна.

На этот раз я действительно озадачен. Если вы знаете, как я могу проверить, предупреждает ли страница что-то с помощью JS или Selenium python, то, пожалуйста, сообщите мне причину на данном этапе, это мне очень поможет. Если вы знаете, как отключить оповещения JavaScript, это было бы здорово.

Ответы [ 3 ]

3 голосов
/ 24 марта 2019

Вы можете отключить оповещения с помощью:

window.alert = () => false

от python:

driver.execute_script("window.alert = () => false")
2 голосов
/ 23 марта 2019

Использование:

prefs.setIntPref("permissions.default.desktop-notification",  1);
1 голос
/ 23 марта 2019

Предположим, что один присутствует за исключением не локализованного элемента в блоке try / catch, затем попытайтесь использовать

driver.switchTo().alert().dismiss();

для продолжения предполагаемого поведения:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...