各位大佬,最近使用CHtmlView做自動化測驗,發現一個問題,有一個輸入框B和一個A按鈕,輸入框B能設定數字,并且輸入框B已經focus和blur,然后A按鈕也能點擊回應,但運行不下去,會報例外Js::JavascriptExceptionObject,該A按鈕型別是<input type="submit">,但如果在點擊該按鈕A之前先用滑鼠點擊一下網頁空白處,表單就能正確提交完成流程。
但如果先不用滑鼠點擊該CHtmlView,則連回車鍵都不能正確提交
PS:試過用mouse_event模擬滑鼠點擊也是一樣,百思不得其解。
謝謝各位~
uj5u.com熱心網友回復:
CHtmlView填充表單和模擬單擊事件uj5u.com熱心網友回復:
謝謝版主回復,這些都做了,甚至用了各種模擬的方法都不行,都要先用滑鼠點擊CHtmlView的網頁空白處之后,才有效果。uj5u.com熱心網友回復:
你呼叫COM介面去操作元素,并不會觸發對應的事件。比如你去呼叫submit并不會觸發onsubmit,你去改變復選框或者單選框選項也不會出發onchange你操作得越多,觸發涉及到的全部對應事件也越不可行——很多操作會同時觸發多個事件,比如你改focus會觸發一個元素的onfocus,另一個元素的onblur,以及對應的onfocusin和onfocusout。比較簡單的辦法是得看腳本例外是在哪一行然后往上去看看之前有什么事件需要觸發。
觸發事件可以用IHTMLElement3::FireEvent,之前用IHTMLDocument4::CreateEventObject創建事件。創建出來的事件很多屬性的值還是空的,腳本如果訪問window.event的什么屬性(比如MouseEvent.button或者MouseEvent.x/y)的話,你要手動設定一下。
如果你的瀏覽器控制元件是IE9模式的話換IDocumentEvent/IDOMEvent和IEventTarget這套API。IE11下一些事件的型別有變動,比如onclick的引數不是MouseEvent而是MSPointerEvent。如果你的瀏覽器控制元件的兼容模式和網站期待的不一致,也可能會出例外的。
有些網站有反機器人措施,這個就比較麻煩了,每個網站不一樣還經常改。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/21863.html
標籤:HTML/XML
上一篇:解決影像去噪問題
下一篇:求解決
