【发布时间】:2015-12-25 00:45:36
【问题描述】:
在构造函数中
webBrowser2.ScriptErrorsSuppressed = true;
webBrowser2.Navigate("http://www.tapuz.co.il/forums/forumpage/393");
然后在 DocumentCompleted 中
void webBrowser2_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
while (webBrowser2.ReadyState != WebBrowserReadyState.Complete)
{
return;
}
HtmlElementCollection items = this.webBrowser2.Document.GetElementsByTagName("span");
foreach (HtmlElement item in items)
{
if (item.GetAttribute("className") == "addMessage")
{
item.InvokeMember("click");
}
}
}
我尝试了 while 循环和没有。
如果由于某种原因没有 while 循环,它会每 2-3 秒一遍又一遍地加载页面。
通过循环,我一直看到 webBrowser2.ReadyState 一直是交互式的。
此外,此站点正在自动刷新。但它永远不会到达“点击”
这是我在 addMessage 按钮上创建 Inspect Element 时看到的:
<div id="SecondLineMenu-sticky-wrapper" class="sticky-wrapper" style="height: 60px;"><div class="SecondLineMenu" id="SecondLineMenu" style="width: 1000px;">
<span class="addMessage" onclick="location='http://www.tapuz.co.il/forums/addmsg/393/טבע_ומזג_אוויר/מזג_האוויר'"> | הוספת הודעה</span>
我想点击 addMessage 按钮,但它永远不会到达那里。
我发现这个工作:
bool clicked = false;
private void webBrowser2_DocumentCompleted_1(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.webBrowser2.Document != null)
{
if (clicked == false)
{
HtmlElementCollection items = webBrowser2.Document.GetElementsByTagName("span");
foreach (HtmlElement item in items)
{
if (item.GetAttribute("className") == "addMessage")
{
item.InvokeMember("click");
clicked = true;
break;
}
}
}
}
}
我应该将此添加为解决方案吗?
【问题讨论】: