如何使用JavaScript或Selenium检查页面上是否存在警报

时间:2019-03-23 17:46:59

标签: javascript python selenium

我正在制造一个机器人,并且该机器人一直在搜索,但是有时搜索时会出现警告,要求用户访问其位置。我如何检查此警报是否存在或将其禁用?

到目前为止,我已经尝试通过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 个答案:

答案 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();

继续进行行为:)