2015-11-04 110 views
3

我正在嘗試單擊下圖中突出顯示的按鈕。該代碼是從網頁:WebBrowser控件中的單擊按鈕vb.net

enter image description here

我不知道,但我相信按鈕是在iFrame中。

我曾嘗試:

Dim wrapClick As HtmlElement = Contact.WebBrowser1.Document.GetElementById("Btn_WrapUp") 
wrapClick.InvokeMember("Click") 

和:

Dim elPoint As New Point(704, 340) 
Dim wrapClick As HtmlElement = Contact.WebBrowser1.Document.GetElementFromPoint(elPoint) 
wrapClick.InvokeMember("onClick") 

和:

Contact.WebBrowser1.Document.GetElementById("Btn_WrapUp").InvokeMember("Click") 

在上述所有的,我已經試過的 'onClick' 和 '點擊'。

WebBrowser1的形式不同。

謝謝!在WebBrowser控件

+1

嗯我嘗試用iframe中的一些html ...我看到空iframe(其中是html?)和錯誤「對象引用未設置爲對象的實例」。如果沒有iframe,InvokeMember可以正常工作。 – c4pricorn

+1

好的,我在iframe中看到html,但無法訪問元素。 _「訪問框架很複雜,因爲受管理的HTML DOM實現了一種稱爲跨框架腳本安全的安全措施。」_並且iframe中的元素的InvokeMember返回「訪問被拒絕」。請參閱https://msdn.microsoft.com/en-us/library/ms171715.aspx – c4pricorn

+0

感謝您的回覆。那麼,這是否意味着不可能實際點擊這個按鈕?除了InvokeMember之外,我還可以嘗試其他任何方法嗎? @capricorn – Jack

回答

1

點擊按鈕 - 工作示例:與框架

主文件 - x.html:

<html> 
<body> 
<iframe width="400" height="300" src="y.html" id="frame1"> </iframe> 
</body> 
</html> 

文件放置於框架 - y.html - 與提交按鈕:

<html> 
<body> 
<form action="...some_action..."> 
<input type="submit" id="btn"> Submit! 
</form> 
</body> 
</html> 

帶有OnClick事件的VB窗體上的按鈕:

Dim Frame1 As HtmlWindow = WebBrowser1.Document.Window.Frames("frame1") 
Frame1.Document.GetElementById("btn").InvokeMember("click") 

VB2010Ex & .NET Framework 4 Client Profile。 我已經嘗試加載其他網站的操作代碼。網站被加載到iframe中。 終於成功:-)

+0

該死,@capricorn,你很好!工作完美,非常感謝:D – Jack

+1

不客氣。 :-) – c4pricorn