2015-11-04 112 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