2011-05-26 42 views
1

我正在自動執行一個Web應用程序。我目前可以通過網頁在表單中輸入一些信息並按提交按鈕。但是,該頁面在提交表單之前需要確認。它調用了confirm()函數,它使用Ok或Cancel彈出一個小窗口。我想自動點擊「確定」。VBScript IE自動化 - 在確認彈出框上按「確定」

它不適用於SendKeys,因爲當調用confirm()彈出函數時,Wscript似乎暫停&等待確認(Ok或Cancel),然後繼續。

我的代碼如下附:

Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Visible = True 
objIE.Navigate "www.abc.com" 
Do While objIE.Busy Or (objIE.READYSTATE <> 4) 
    Wscript.Sleep 100 
Loop 

objIE.Document.all(73).value = "Testing…" 'this is the form input 
objIE.Document.all(106).click 'this is the submit button 

'Confirm box will come up here & I want to press 'Ok' 

***'Something in here to press the popup Ok button???*** 

非常感謝!

+0

您能否以不同的方式查看並直接向表單的操作目標運行http post請求? – 2011-05-27 14:25:19

+0

或者只是用你自己總是返回true函數替換confirm函數,比如'objIE.Window.Eval「window.confirm = function(){return true;};」'? – svinto 2011-05-27 15:23:15

回答

1

簡單但並非完全不合格的解決方案:就在點擊之前,通過WSH啓動一個新的VBScript文件,並在其中執行1秒等待和sendkey "{ENTER}"操作。

0

以下是肯定不失敗的證明。

你可以點擊使用SendKeys而不是objIE.Document.all(106).click的提交按鈕嗎?

如果是這樣,那麼你可以嘗試連續發送兩個密鑰,即SendKeys "{ENTER}{ENTER}"(或任何兩種密鑰都需要在每種情況下)。

如果沒有,那麼你可以嘗試發送SendKeys "{ENTER}"前點擊使用objIE.Document.all(106).click提交按鈕(確保沒有字段被選中後)。在某些情況下,發送的密鑰保存在內存中,直到適用時爲止。