Javascript 如何禁用";重新加载站点?“您所做的更改可能不会保存”;chrome中的(python)selenium测试弹出窗口?

Javascript 如何禁用";重新加载站点?“您所做的更改可能不会保存”;chrome中的(python)selenium测试弹出窗口?,javascript,python,selenium,google-chrome,onbeforeunload,Javascript,Python,Selenium,Google Chrome,Onbeforeunload,我正在chrome浏览器上运行自动化(python)selenium测试,有时重新加载页面时,屏幕上会出现一个弹出窗口: 是否可以配置chrome selenium浏览器,使此弹出窗口不出现?如果是,如何做到这一点?或者是否有其他方法来抑制此弹出窗口?还是接受它?我知道这并不能回答问题的抑制部分,但是 请尝试以下代码以接受弹出窗口: driver.SwitchTo().Alert().Accept()我知道这不能回答问题的抑制部分,但是 请尝试以下代码以接受弹出窗口: driver.Switc

我正在chrome浏览器上运行自动化(python)selenium测试,有时重新加载页面时,屏幕上会出现一个弹出窗口:


是否可以配置chrome selenium浏览器,使此弹出窗口不出现?如果是,如何做到这一点?或者是否有其他方法来抑制此弹出窗口?还是接受它?

我知道这并不能回答问题的抑制部分,但是

请尝试以下代码以接受弹出窗口:


driver.SwitchTo().Alert().Accept()

我知道这不能回答问题的抑制部分,但是

请尝试以下代码以接受弹出窗口:


driver.SwitchTo().Alert().Accept()

此弹出窗口的文本为重新加载站点?您所做的更改可能无法保存是在卸载之前执行的
属性


在卸载之前 mixin的属性是用于处理事件的。当窗口即将释放其资源时,将触发这些事件。此时,文档仍然可见,事件仍然可以取消


解决方案 有不同的策略可用于处理此弹出窗口

  • Chrome解决方案:使用
    ——通过ChromeOptions()禁用弹出窗口阻止功能:

  • Firefox解决方案:使用
    dom。通过FirefoxProfile()在卸载之前禁用\u

  • 跨浏览器解决方案:作为跨浏览器解决方案,您可以通过调用
    executeScript()
    禁用此对话框,以将window.onbeforeunload设置为
    function(){},您可以使用以下解决方案:

    driver.execute_script("window.onbeforeunload = function() {};")
    
    $I->executeJS( "window.onbeforeunload = null" );
    
  • 基于JQuery的解决方案:

    driver.execute_script("window.onbeforeunload = function() {};")
    
    $I->executeJS( "window.onbeforeunload = null" );
    
您可以在中找到相关的讨论


此弹出窗口的文本为是否重新加载站点?您所做的更改可能无法保存是在卸载之前执行的
属性


在卸载之前 mixin的属性是用于处理事件的。当窗口即将释放其资源时,将触发这些事件。此时,文档仍然可见,事件仍然可以取消


解决方案 有不同的策略可用于处理此弹出窗口

  • Chrome解决方案:使用
    ——通过ChromeOptions()禁用弹出窗口阻止功能:

  • Firefox解决方案:使用
    dom。通过FirefoxProfile()在卸载之前禁用\u

  • 跨浏览器解决方案:作为跨浏览器解决方案,您可以通过调用
    executeScript()
    禁用此对话框,以将window.onbeforeunload设置为
    function(){},您可以使用以下解决方案:

    driver.execute_script("window.onbeforeunload = function() {};")
    
    $I->executeJS( "window.onbeforeunload = null" );
    
  • 基于JQuery的解决方案:

    driver.execute_script("window.onbeforeunload = function() {};")
    
    $I->executeJS( "window.onbeforeunload = null" );
    
您可以在中找到相关的讨论


是的,我想我会用这个建议。但是警报只会偶尔弹出。您可以尝试添加“try Exception”块以尝试切换到警报窗口是的,我想我会使用此建议。但是警报只会偶尔弹出。你可以尝试添加“try Exception”块以尝试切换到警报窗口。我刚刚意识到我已经为Chrome设置了此标志
--禁用弹出阻止功能。然而,它似乎不能正常工作。我仍然时不时地收到弹出窗口(重复完全相同的网页)。您是否试用了跨浏览器解决方案?你能给我一个状态吗?我什么时候执行脚本?就在我创建驱动程序后一次?每次新页面?弹出窗口有时仍会出现。请忽略我以前的评论。无论你在哪里浏览页面,如果弹出窗口出现,你都需要添加这一行来删除它。我刚刚意识到我已经为Chrome设置了这个标志
——禁用弹出窗口阻止功能。然而,它似乎不能正常工作。我仍然时不时地收到弹出窗口(重复完全相同的网页)。您是否试用了跨浏览器解决方案?你能给我一个状态吗?我什么时候执行脚本?就在我创建驱动程序后一次?每次新页面?弹出窗口有时仍会出现。请忽略我以前的评论。无论你在什么地方浏览一个页面,如果出现这个弹出窗口,你都需要添加这一行来删除它。