作者o707o7 (往前走~)
看板Office
标题[问题] IE自动关闭Alert?
时间Sat Jul 2 22:15:09 2016
软体:
Excel
版本:
2016
-----
大家好,因为有数个网页上有固定动作要常做,
所以想写个VBA来自动处理.
不过在一些网页处理中会跳出Alret或confirm视窗,
例如网页是如下写法:
javascript:
function print()
{alert("请设定横式列印");window.print();}
我可以用以下写法关掉alert再sendkeys列印:
VBA:
1. temp = "function print() {window.print();}"
2. ie.document.parentWindow.execScript temp
3.
4. ie.documentgetElementsByID("print").FireEvent ("Onclick")
5.
6. SendKeys "%r", True
可是有些网页Alert在原始档找不到,所以无法用以上方式关闭,造成VBA无法继续.
例如上面的javascript如果我没有去改内容,
就会造成alert发生时,因为还没关掉,
所以下一句"window.print()"就还没执行,
等於VBA的第四行FireEvent还没执行完,
即便下面再加Sendkeys也无法点掉alert,
VBA的执行就停在第四行...
请问有高手有解吗?谢谢~
网路上有找到以下资讯,但无法执行...
Set IE.document.alert = Nothing
Set IE.document.confirm = Nothing
Set IE.document.showModalDialog = Nothing
Set IE.document.Open = Nothing
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.63.122.208
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1467468912.A.E80.html
1F:→ Linkey: 用Sendkey不是好方法,送出的当下无法确定操作的目标 07/03 09:02
2F:→ Linkey: 如果网页有异常或回应较慢,用Sendkey也不会发现 07/03 09:05
3F:推 Linkey: alert看不到的部分可以用浏览器的开发者工具去检视 07/03 09:08
4F:→ Linkey: 可以的话想申一下网址 07/03 09:09
5F:→ Linkey: 最近也学用VBA操作.Net的网站,遇到Javascript的问题 07/03 09:12
6F:→ Linkey: 都用绕过的方式,或者用 WinHttp 直接 post data 取资料 07/03 09:13
7F:→ Linkey: 目前遇到showModalDialog非BOM无法存操作DOM内容 07/03 09:16
8F:→ o707o7: 其实网页是公司内部的网页,所以网址想贴也不能贴... 07/03 10:34
9F:→ o707o7: 同意SENDKEYS真的不是很方法,但只想到这个...只能加WAIT.. 07/03 10:35
10F:→ o707o7: temp= "window.alert = function() { return true; }" 07/03 10:38
11F:→ o707o7: 刚刚看到的,不知道有没有效果... 07/03 10:41
12F:→ Linkey: 因为ShowModalDialog卡关,开始从 Web Automation 找资料 07/03 11:28
14F:→ Linkey: javascript injection等,但程度不好看得好累... 07/03 11:43