C# 如何使用HtmleElement以编程方式单击链接元素?
我在做一个自动化程序。我将网页加载到windows窗体中,并将其加载到WebBrowser控件中。然后,我需要按编程方式单击WebBrowser中的链接。我该怎么做?例如:C# 如何使用HtmleElement以编程方式单击链接元素?,c#,asp.net,html,webforms,C#,Asp.net,Html,Webforms,我在做一个自动化程序。我将网页加载到windows窗体中,并将其加载到WebBrowser控件中。然后,我需要按编程方式单击WebBrowser中的链接。我该怎么做?例如: 以上是两种不同的情况。第一个元素没有id属性,而第二个元素有。您知道如何通过编程方式单击每个按钮吗?您需要一种自动化浏览器的方法 一种方法是使用Watin()。它允许您编写一个.Net程序,通过一个方便的对象模型控制浏览器。它主要用于为网页编写自动测试,但也可用于控制浏览器 如果您不想以这种方式控制浏览器,那么您可以编写
以上是两种不同的情况。第一个元素没有
id
属性,而第二个元素有。您知道如何通过编程方式单击每个按钮吗?您需要一种自动化浏览器的方法
一种方法是使用Watin()。它允许您编写一个.Net程序,通过一个方便的对象模型控制浏览器。它主要用于为网页编写自动测试,但也可用于控制浏览器
如果您不想以这种方式控制浏览器,那么您可以编写一个包含在页面上的javascript来执行单击操作,但我怀疑这是您的目标。您必须首先通过元素ID或其他过滤器找到元素:
HtmlElement fbLink = webBrowser.Document.GetElementByID("fbLink");
和模拟“点击”:
通过内部文本查找链接的示例:
HtmlElement FindLink(string innerText)
{
foreach (HtmlElement link in webBrowser.Document.GetElementsByTagName("a"))
{
if (link.InnerText.Equals("Google Me"))
{
return link;
}
}
}
以编程方式单击是什么意思?程序将自动单击链接。以编程方式单击意味着它由程序单击,但不是由userthx为您的回复而单击,Rune。但是,我正在使用axWebBrowser自己编写自动化函数。但我面临点击链接的问题:(@DEN如果这样一个简单的任务是一个问题,那么使用图书馆是一个强有力的理由。不确定这是否曾经是watin的领域,但它已经不存在了。它现在只位于这个答案中的链接,导致一些人提出快速致富。当前链接这是一个六年前的答案,所以我不确定它是否相关,但我修复了它d无论如何都要删除链接。谢谢!我无法在axwebbrowser事件下实现此代码。我尝试使用断点对其进行调试,但发现它将自动停止在“foreach(webBrowser.Document.GetElementsByTagName(“a”)”处。您知道发生了什么吗?mshtml.HTMLDocument htm=(mshtml.HTMLDocument)axWebBrowser1.Document;foreach(htm.getElementsByTagName(“a”)中的HtmlElement链接){if(link.InnerText.Equals(“高级搜索”){MessageBox.Show(“yea!!”;}}}这是一篇很老的帖子,我想知道为什么我总是把
webBrowser.Document
设为null
,以及如何处理DocumentCompleted
事件。
HtmlElement FindLink(string innerText)
{
foreach (HtmlElement link in webBrowser.Document.GetElementsByTagName("a"))
{
if (link.InnerText.Equals("Google Me"))
{
return link;
}
}
}