我正在制造一个机器人,并且该机器人一直在搜索,但是有时搜索时会出现警告,要求用户访问其位置。我如何检查此警报是否存在或将其禁用?
到目前为止,我已经尝试通过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警报,那就太好了。
答案 0 :(得分:3)
您可以通过以下方式禁用警报
:window.alert = () => false
来自python的
driver.execute_script("window.alert = () => false")
答案 1 :(得分:2)
使用:
prefs.setIntPref("permissions.default.desktop-notification", 1);
答案 2 :(得分:1)
假设一个try / catch块中未定位的元素除外,然后尝试使用
driver.switchTo().alert().dismiss();
继续进行行为:)