简体   繁体   English

我如何点击网站按钮?

[英]How do i click on a website button?

I'm navigating in the constructor first for testing我首先在构造函数中导航进行测试

webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Navigate("http://www.tapuz.co.il/forums/forumpage/393");
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;

Then in the DocumentCompleted event:然后在 DocumentCompleted 事件中:

void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {

                HtmlElementCollection items = this.webBrowser1.Document.GetElementsByTagName("span"); 
                foreach (HtmlElement item in items)
                {
                    if (item.GetAttribute("className") == "addMessage")
                    {
                        webBrowser1.Document.GetElementById("onclick").InvokeMember("click");
                    }
                }
            }

When i make inspect element on the addMessage button i see:当我在 addMessage 按钮上制作检查元素时,我看到:

<span class="addMessage" onclick="location='http://www.tapuz.co.il/forums/addmsg/393/טבע_ומזג_אוויר/מזג_האוויר'">  | הוספת הודעה</span>

But i'm getting null on the line:但我在线上为空:

webBrowser1.Document.GetElementById("onclick").InvokeMember("click");

What i want to do is to click on the addMessage button.我想要做的是单击 addMessage 按钮。

you need to change你需要改变

webBrowser1.Document.GetElementById("onclick").InvokeMember("click");

to

item.InvokeMember("Click");

item is already the element you want to have so you just need to invoke the member click on it. item 已经是你想要的元素,所以你只需要调用成员点击它。

HtmlElementCollection elc = this.WebBrowserWindow.Document.GetElementsByTagName("button");
            foreach (HtmlElement el in elc)
            {
                if (el.GetAttribute("type").Equals("submit"))
                {
                    el.InvokeMember("Click");
                    break;
                }

            }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM