加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 单击WebBrowser控件中的HTML链接

发布时间:2020-12-15 18:12:59 所属栏目:百科 来源:网络整理
导读:C#Visual Studio 2010 我正在将一个复杂的html页面加载到webbrowser控件中.但是,我没有能力修改网页.我想从Windows窗体自动单击页面上的链接.但是,每次加载页面时,ID似乎是随机生成的(所以我认为引用ID不起作用). 这是一个href链接的内容: a ID = “u_lp_id
C#Visual Studio 2010

我正在将一个复杂的html页面加载到webbrowser控件中.但是,我没有能力修改网页.我想从Windows窗体自动单击页面上的链接.但是,每次加载页面时,ID似乎是随机生成的(所以我认为引用ID不起作用).

这是一个href链接的内容:

<a

ID = “u_lp_id_58547”
HREF = “JavaScript的:无效(0)”
class =“SGLeftPanelText”onclick =“setStoreParams(‘cases; 212’,212); window.leftpanel.onClick(‘cases_ss_733’); return false;”>

My Assigned</a>

无论如何点击C#的链接?

谢谢!

更新:

我觉得这很接近,但它不起作用:

HtmlElementCollection links = helpdeskWebBrowser.Document.Window.Frames["main_pending_events_frame"].Document.GetElementsByTagName("a");
MessageBox.Show(links.Count.ToString());

我已经尝试插入每个帧名称并在TagName字段中尝试了“a”和“A”但是没有任何运气.我找不到任何链接;消息框始终为0.我缺少什么?

解决方法

这样的事情应该有效:
HtmlElement link = webBrowser.Document.GetElementByID("u_lp_id_58547")
link.InvokeMember("Click")

编辑:

由于ID是随机生成的,另一种选择可能是通过其InnerText标识链接;沿着这些路线.

HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");

foreach (HtmlElement link in links)
{
    if (link.InnerText.Equals("My Assigned"))
        link.InvokeMember("Click");
}

更新:

您可以使用以下方式获取IFrame中的链接:

webBrowser.Document.Window.Frames["MyIFrame"].Document.GetElementsByTagName("A");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读