Jos*_*osh 6 c# browser hyperlink visual-studio-2010
C#Visual Studio 2010
我正在将一个复杂的html页面加载到webbrowser控件中.但是,我没有能力修改网页.我想从Windows窗体自动单击页面上的链接.但是,每次加载页面时,ID似乎是随机生成的(所以我认为引用ID不起作用).
这是一个href链接的内容:
<a
Run Code Online (Sandbox Code Playgroud)
id="u_lp_id_58547"
href="javascript:void(0)"
class="SGLeftPanelText" onclick="setStoreParams('cases;212', 212); window.leftpanel.onClick('cases_ss_733');return false; ">
My Assigned</a>
Run Code Online (Sandbox Code Playgroud)
无论如何点击C#的链接?
谢谢!
更新:
我觉得这很接近,但它不起作用:
HtmlElementCollection links = helpdeskWebBrowser.Document.Window.Frames["main_pending_events_frame"].Document.GetElementsByTagName("a");
MessageBox.Show(links.Count.ToString());
Run Code Online (Sandbox Code Playgroud)
我已经尝试插入每个帧名称并在TagName字段中尝试了"a"和"A"但是没有任何运气.我找不到任何链接; 消息框始终为0.我缺少什么?
Gar*_*ett 16
这样的事情应该有效:
HtmlElement link = webBrowser.Document.GetElementByID("u_lp_id_58547")
link.InvokeMember("Click")
Run Code Online (Sandbox Code Playgroud)
编辑:
由于ID是随机生成的,另一种选择可能是通过它们来识别链接InnerText
; 沿着这些路线.
HtmlElementCollection links = webBrowser.Document.GetElementsByTagName("A");
foreach (HtmlElement link in links)
{
if (link.InnerText.Equals("My Assigned"))
link.InvokeMember("Click");
}
Run Code Online (Sandbox Code Playgroud)
更新:
您可以使用以下方式获取IFrame中的链接:
webBrowser.Document.Window.Frames["MyIFrame"].Document.GetElementsByTagName("A");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
52917 次 |
最近记录: |