Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在边缘浏览器中,如何执行window.open()操作而不在新窗口或选项卡中保留会话?_Javascript_Selenium_Browser_Selenide - Fatal编程技术网

Javascript 在边缘浏览器中,如何执行window.open()操作而不在新窗口或选项卡中保留会话?

Javascript 在边缘浏览器中,如何执行window.open()操作而不在新窗口或选项卡中保留会话?,javascript,selenium,browser,selenide,Javascript,Selenium,Browser,Selenide,使用Edge browser时,我希望在不保留当前窗口会话的情况下打开新窗口和/或选项卡 我让它在Firefox上工作如下: 打开新窗口->窗口。打开('mySiteURL','u blank','status=no,noopener=yes'); 打开新标签->窗口。打开('mySiteURL','u blank','noopener=yes') 我希望为Edge browser实现同样的功能。我将为您要打开的每个新窗口或选项卡创建一个新驱动程序缓冲区。 当您使用JS window.open(

使用Edge browser时,我希望在不保留当前窗口会话的情况下打开新窗口和/或选项卡

我让它在Firefox上工作如下: 打开新窗口->窗口。打开('mySiteURL','u blank','status=no,noopener=yes'); 打开新标签->窗口。打开('mySiteURL','u blank','noopener=yes')


我希望为Edge browser实现同样的功能。

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

要管理选项卡,只需使用
getAllWindowHandles()
函数,并对要关闭的选项卡调用
close()
方法


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

如果您的应用程序正在托管webbrowser控件,该控件随后会启动一个完整的IE窗口,那么您的新URL很可能是由另一个进程(iexpore.exe)而不是您的应用程序进程请求的。因此,请求无法访问会话cookies,因此会话显示为“丢失”

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

这有帮助吗?