在vb.net中,点击WebBrowser控件中的按钮

3

我想点击下图中突出显示的按钮。该代码来自一个网页:

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' 和 'Click'。

WebBrowser1位于不同的窗体上。

谢谢!


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
谢谢您的回复。那么,这是否意味着无法以编程方式单击此按钮?我还有其他方法可以尝试吗?@capricorn - Jack
请记住,我在VB.NET方面是初学者,在HTML方面更低。 - Jack
1
似乎无法在嵌套的iframe中点击HTML上的按钮,这是出于安全考虑。恐怕没有其他方法了。在没有iframe的HTML中,点击是有效的。 - c4pricorn
我能不能执行'onClick'命令:"activityHelperObj.WrapUp(); return false;" 或者使用jQuery代码?而不必实际点击按钮。@capricorn - Jack
1个回答

1

点击WebBrowser控件中的按钮 - 工作示例:

带框架的主文件 - 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>

在VB表单上带有OnClick事件的按钮:

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

VB2010Ex 和 .NET Framework 4 客户端框架。 我尝试了一些加载其他网站的代码。该网站被加载在 iframe 中。 最终成功 :-)

真是太棒了,@摩羯座,你太厉害了!完美地工作了,非常感谢:D - Jack

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接