2
votes

Comment vérifier si une alerte est présente sur une page avec JavaScript ou Selenium

Je suis en train de créer un bot, et ce bot recherche constamment mais parfois lorsqu'il recherche, une alerte apparaît demandant à l'utilisateur d'accéder à sa position. Comment vérifier si cette alerte est présente ou mieux encore la désactiver?

Jusqu'à présent, j'ai essayé de désactiver des éléments via 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);

Mais les alertes continuent de s'afficher vers le haut. J'ai également essayé de créer un nouveau profil Firefox avec des modules complémentaires préinstallés juste pour bloquer les boîtes de dialogue et les fenêtres contextuelles, mais cela me donne toujours des boîtes de dialogue.

Je suis vraiment perplexe cette fois. Si vous savez comment je peux vérifier si une page alerte quelque chose avec JS ou Selenium python, veuillez me dire parce qu'à ce stade, cela m'aiderait beaucoup. Si vous savez comment désactiver les alertes javascript, ce serait génial.


4 commentaires

Cela pourrait aider, duplication possible stackoverflow.com/questions/38767551/...


@David c'est en fait une alerte pas un pop-up. Si c'était un pop-up, mes add-ons l'auraient bloqué.


Utilisez-vous Chrome et Firefox?


@PritamMaske Firefox.


3 Réponses :


2
votes

Supposons qu'il y en ait un sur l'exception d'un élément non localisé dans un bloc try / catch, puis essayez d'utiliser

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

pour continuer avec le comportement voulu :)


0 commentaires

2
votes

Utiliser:

prefs.setIntPref("permissions.default.desktop-notification",  1);


0 commentaires

3
votes

Vous pouvez désactiver les alertes avec:

driver.execute_script("window.alert = () => false")

de python qui est:

window.alert = () => false


0 commentaires