2014-09-25 274 views
1

我想在VB.net上打開一些代碼,打開一個網站並登錄,之後運行報告。當我嘗試從網站獲取任何內容時,一切都工作正常,但是那些在OnClick屬性中有這條指令的人:「return oamSubmitForm('inputParamView:paramForm','inputParamView:paramForm:_idJsp106');」獲取HRESULT:0x800A01B6從InternetExplorerMedium網站獲取元素時出現異常

基本上,如果你看到下面的代碼,你會發現我點擊了一些CheckBox,它工作的很好,但是當我檢索按鈕時,它沒有輸入一個輸入,它實際上有鏈接當我在調試時使用一個whatc的網站。

這是我的代碼(我跳過登錄部分):

Private Sub open Page() 
ieb = New SHDocVw.InternetExplorerMedium() 
ieb.Navigate("http://example.example/qptheme2/pages/index.faces") 
ieb.visible = True 
ieb.Silent = True 

While Not (ieb.ReadyState = WebBrowserReadyState.Complete) 
    Application.DoEvents() 
End While 

If v.checked = False Then 
    v.Click() 
End If 

v = ie.Document.GetElementById("inputParamView:paramForm:inputParametertuesday") 

If v.checked = False Then 
    v.Click() 
End If 

v = ie.Document.GetElementById("inputParamView:paramForm:_idJsp106") 

v.Click() '<-- IT FAILS HERE Exception HRESULT: 0x800A01B6 

如果我檢查它顯示mshtml.HTMLAnchorElementClass {} http://example.example/qpreport/savedpages/savedReports.faces#如果 我從頁面查看源代碼的手錶,這是我想要得到的元素:

<a id="inputParamView:paramForm:_idJsp106" onclick="return 
oamSubmitForm('inputParamView:paramForm','inputParamView:paramForm:_idJsp106');" href="#" 

我不知道是否有任何與財產的OnClick。

我會感謝您的任何幫助,試圖解決這個問題。

+1

「但是那些有這個指令......」做什麼?這句話不完整嗎?另外,請修復您的代碼格式。您可以使用反引號代替內聯代碼的雙引號,並且所有其他代碼在行的開頭應該有四個空格,以將其放入正確的代碼塊中。 – skrrgwasme 2014-09-25 15:53:59

+0

下一行會給你答案嗎? 該指令是「return oamSubmitForm('inputParamView:paramForm','inputParamView:paramForm:_idJsp106');」 即時嘗試在這裏格式化的東西很抱歉 – Mengoni 2014-09-25 16:01:03

回答

2

我自己找到了解決方案。之後,我只需將我正在檢索的元素實例化爲mshtml.HTMLAnchorElementClass ,然後我可以點擊它。

Dim l As mshtml.HTMLAnchorElementClass = ieb.Document.GetElementById("inputParamView:paramForm:_idJsp106") 
l.click()