在Edge浏览器中,我该怎么做window.open而不在新窗口或新选项卡中保留会话?

问题描述

使用Edge浏览器,我想在不保持当前窗口会话的情况下打开新窗口和/或选项卡。

我可以像这样在Firefox上运行它: 打开新窗口-> window.open('mySiteURL','_blank','status = no,noopener = yes'); 打开新标签-> window.open('mySiteURL','_blank','noopener = yes');

我想在Edge浏览器上实现相同的效果

解决方法

我将为要打开的每个新窗口或标签创建一个新驱动程序的缓冲区。 当您使用了JS window.open()函数后, 只需执行driverOfOldWindow.close(),它就会关闭上一个窗口。 不要使用driverOfOldWindow.quit(),因为它将关闭所有浏览器窗口,这不是您可能要执行的操作,因为WebDriver可能已经打开了您可能希望继续使用的其他窗口。

要管理标签,只需使用getAllWindowHandles()函数并在要关闭的标签上调用close()方法即可。

Look here

,

IE可以为不同窗口和选项卡中的内容创建多个内容处理。

如果您的应用程序托管一个Web浏览器控件,然后该控件启动一个完整的IE窗口,则可能是其他进程而不是您的应用程序进程正在请求您的新URL。结果,请求无法访问会话Cookie,因此会话显示为“丢失”。

(值得注意的是,同一进程树中的多个iexplore.exe进程实例可以互相共享会话cookie)。

Opening a new window create a new session

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...