簡體   English   中英

當我檢查網站是否在webBrowser DocumentCompleted中完成上傳時,所有內容都處於“交互”狀態,我還能做什么?

[英]When i'm checking if site uploaded complete in webBrowser DocumentCompleted it's all the in Interactive state what else can i do?

在構造函數中

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始終是Interactive的。

另外,該站點正在自動刷新。 但是它永遠不會到達“點擊”

這是我在addMessage按鈕上進行檢查元素時看到的:

<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;
                        }
                    }
                }
            }
        }

我應該將此添加為解決方案嗎?

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;
                        }
                    }
                }
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM