使用_IECreate()创建新会话
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用_IECreate()创建新会话相关的知识,希望对你有一定的参考价值。
我有两个AutoIt脚本。两者都含有Global $oIE = _IECreate($myUrl, 1)
。他们为同一个URL创建了两个IE窗口。
在IE中,当从“文件”菜单中选择“新会话”时,每个窗口都有自己的会话。但是同时使用两个不同的脚本文件,两个窗口都登录到同一个帐户。如何使用新会话打开每个IE窗口?
答案
会话与每个独特的iexplore.exe进程相关。每个必需的会话启动iexplore.exe的新实例(未经测试,无错误检查):
#include <IE.au3>
Global Const $g_sUrl = 'https://stackoverflow.com/'
Global $g_aIE[2]
For $i1 = 0 To UBound($g_aIE, 1) -1
_IECreateSession($g_aIE[$i1], $g_sUrl)
Next
Func _IECreateSession(ByRef $oIE, Const $sUrl)
Local Const $iPID = ShellExecute('iexplore.exe', '-nosessionmerging about:blank')
Local $aWnd
WinWait('Blank Page')
$aWnd = _WinAPI_EnumProcessWindows($iPID, True)
$oIE = _IEAttach($aWnd[1][1], 'hwnd')
_IELoadWait($oIE)
_IENavigate($oIE, $sUrl)
Return $iPID
EndFunc
以上是关于使用_IECreate()创建新会话的主要内容,如果未能解决你的问题,请参考以下文章
org.openqa.selenium.SessionNotCreatedException:无法创建新会话。 (原始错误:请求了一个新会话,但一个正在进行中)
如何防止 Jetty/GAE 为不同的上下文路径创建新会话?