关于IE网页点提交后,弹出来的窗口无法捕获!【已解决】
本帖最后由 ttmv2019sx 于 2021-3-9 15:18 编辑我在自个的IE网页中操作,后有弹出窗口要点一下确定,但是用WinActivate没有办法激活,导致无法用ControlClick来点击这个确定,
奇怪的是,我在确定的这个网页,把程序都关了,再打开一个新的捕获来操作,是可以被捕到,并且点击下去的,
原来的一直运行下来,到此处就不行,我把帮助文件,也拿出来试了也不行,不知道为什么,发现下面的文字为OK改成确定也是不行的,
这个是测试的时候用窗口器捕出来的,不知道是什么原因,有大神知道的吗!
; 与示例 1 相同, 但它不是使用单击,
; 它赋予元素焦点, 然后使用 ControlSend 发送输入.
; 当浏览器端的脚本程序与单击操作关联, 防止控件自动返回到您的代码时,
; 请使用此技术.
#include <IE.au3>
Local $oIE = _IE_Example("form")
Local $oSubmit = _IEGetObjByName($oIE, "submitExample")
Local $hWnd = _IEPropertyGet($oIE, "hwnd")
_IEAction($oSubmit, "focus")
ControlSend($hWnd, "", "", "{Enter}")
; 等待警告窗口,然后点击"确定".
WinWait("", "ExampleFormSubmitted")
Sleep(2000)
ControlClick("", "ExampleFormSubmitted", "")
Sleep(2000)
_IEQuit($oIE)
autoit是单线程。你是自建的ie进程,在等待点击时是暂停状态,因此不会响应之后的代码,这也是为什么另外另外执行一个au3进程是可以的。
论坛有很多方法,简单的创建一个新进程就行 afan 发表于 2021-3-9 13:02
autoit是单线程。你是自建的ie进程,在等待点击时是暂停状态,因此不会响应之后的代码,这也是为什么另外另 ...
是的A版,我现在是用笨方法,就是在弹窗出现前,ShellExecute($sFilePath)用这个命令,先把获取窗口的小程序起来,循环一下,然后,主程序就会自动继续下面的程序,弹窗出来了,然后就被提前起来的小程序,处理掉,然后小程序,自个也退出,主程序就可以继续下去了。 ttmv2019sx 发表于 2021-3-9 13:04
是的A版,我现在是用笨方法,就是在弹窗出现前,ShellExecute($sFilePath)用这个命令,先把获取窗口的 ...
那有什么问题? afan 发表于 2021-3-9 13:02
autoit是单线程。你是自建的ie进程,在等待点击时是暂停状态,因此不会响应之后的代码,这也是为什么另外另 ...
A版,很多方法,哪关键字搜什么呢,这个好像表达上不太好组织,搜多线程? 我这边测试你的例子是没有问题的,只要类获取的正确:face (12):
d:\Users\Desktop\TE)474(Q@A%CIZ9JH18P~1O.png afan 发表于 2021-3-9 13:06
那有什么问题?
就如你说的,看看论坛里,更好的办法呀,呵呵。 Xxkwwz 发表于 2021-3-9 13:08
我这边测试你的例子是没有问题的,只要类获取的正确
我是执行后,弹窗哪边就停止了,不下去了。我是WIN10系统 Xxkwwz 发表于 2021-3-9 13:08
我这边测试你的例子是没有问题的,只要类获取的正确
他的问题前几个字“我在自个的IE” ttmv2019sx 发表于 2021-3-9 13:10
就如你说的,看看论坛里,更好的办法呀,呵呵。
新手用多进程方式就行了。进阶可以用定时器。 Xxkwwz 发表于 2021-3-9 13:08
我这边测试你的例子是没有问题的,只要类获取的正确
不是吧,还有这种事,我上面的便子是帮助中拿出来的,我测试到了,到了弹窗口后就不动了,你把你的代码发上来,我测试一下,你看可以吗,难道是WIN10的原因? Xxkwwz 发表于 2021-3-9 13:08
我这边测试你的例子是没有问题的,只要类获取的正确
而且,你的这个成功了,哪你的哪个窗口,是会被确定掉的吗? afan 发表于 2021-3-9 13:14
他的问题前几个字“我在自个的IE”
A版,但是看上面的超版的,图也是一样的操作呢,我没有看出不同呀。为什么他能获取,怪。 单线程的程序,触发一个消息框,如果没办法设置超时返回,那么就会暂停等待。无解,只能提前拉起一个进程处理这个消息框。 不过调用IE创建的消息框,那就不属于单线程了。消息框应该是ie触发的。AU3应该可以直接等待到这个窗口。
页:
[1]
2