Sag*_*gi 5 c# iframe webbrowser-control winforms
我正在使用C#,赢取应用,尝试点击我的webbrowser上的iframe中的按钮.
HTML:
<iframe frameborder="0" scrolling="no" id="EditorIFrmae" name="EditorIFrmae" width="100%" height="700" style="z-index: 0; height: 852px;" src="X"></iframe>
Run Code Online (Sandbox Code Playgroud)
在iframe代码中:
<div height="" width="100%" style="position: relative; min-height: 50px;" onclick="javascript:funcEditPage('SB_Content_Page','SB_Content_PagePreview','PAGE5.asp');" class="SB_DivContentPreview" id="SB_Content_PagePreview">
</div>
Run Code Online (Sandbox Code Playgroud)
我的代码:
HtmlElementCollection linkit = this.webBrowser1.Document.GetElementsByTagName("div");
foreach (HtmlElement foundit in linkit)
{
if (foundit.GetAttribute("id").Equals("SB_Content_PagePreview"))
{
foundit.InvokeMember("Click");
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能点击按钮?
您必须等待 Document完全加载,然后才能尝试在其中查找元素,并且在加载框架时,您也必须在框架内进行搜索。
订阅DocumentCompleted活动:
initialUrl = new Uri(/* your url */);
webBrowser.DocumentCompleted += OnDocumentCompleted;
webBrowser.Navigate(initialUrl);
Run Code Online (Sandbox Code Playgroud)
然后尝试在方法内查找元素:
private void OnDocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs args)
{
if (args.Url == initialUrl)
{
HtmlElementCollection elements =
webBrowser.Document.Window.Frames[0].Document.GetElementsByTagName("div");
foreach (HtmlElement element in elements)
{
if (element.GetAttribute("id").Equals("SB_Content_PagePreview"))
{
element.InvokeMember("Click");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)