如何在Brave/Chrome中使用Selenium禁用弹出窗口/警报而不使用alert.accept()?

0 人关注

我不能使用 alert.accept() ,因为我的程序在工作之前会自动脱焦(它还得检查其他东西)。

我根本不希望有任何弹出窗口,但我不知道如何直接禁用它们,这很重要,因为它们会阻止我关闭标签。我没能找到任何不涉及 alert.accept() 和使用python的答案。

我可以这样做吗?如果不能,有没有适合我情况的变通方法?(如果没有的话,我想做的程序是不可能的)。

4 个评论
你说你的程序失焦是什么意思?你是指浏览器窗口失去焦点还是程序窗口失去焦点?通常情况下,你希望浏览器处于焦点状态。
该页面是否使用了 alert() 或其他类型的弹出窗口?
它从弹出窗口中移开焦点。它点击离开。(当用户这样做时,它不起作用,但显然在Selenium中起作用?)
我不确定。它就是不让我关闭这个页面。
python
selenium
google-chrome
brave
user13386412
发布于 2020-04-23
1 个回答
KTibow
KTibow
发布于 2020-04-23
已采纳
0 人赞同

this question 说,只要你同意屏蔽所有警报,你就可以直接覆盖 alert() 。这里有一个Python中的例子。

from selenium import webdriver
driver=webdriver.Firefox()
driver.implicitly_wait(3)
driver.get("http://example.com")
js = "window.alert = function() {}"
driver.execute_script(js)

或者因为警报是在关闭页面时弹出的,你可以试试这个。

from selenium import webdriver
driver=webdriver.Firefox()