c# - 我如何点击网站按钮?

标签 c# html .net winforms webbrowser-control

我首先在构造函数中导航以进行测试

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

然后在 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");
                    }
                }
            }

当我在 addMessage 按钮上创建检查元素时,我看到:

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

但是我在线上得到的是空值:

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

我想做的是点击 addMessage 按钮。

最佳答案

你需要改变

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

item.InvokeMember("Click");

item 已经是您想要的元素,因此您只需调用成员点击它即可。

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

            }

关于c# - 我如何点击网站按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34445887/

相关文章:

javascript - 当存在 onclick 时,Ajax 调用将不起作用

asp.net - 将 ASP 包含添加到 HTML 中

.net - Identity Server 4 和用于用户管理的 Web API

c# - DateTimeKind.Utc 与 DateTimeKind.Local

c# - ActiveMQ 访问订阅之前发布的数据

c# - IList<T> 和 List<T> 的区别

javascript - 如何比较当前事件选项卡的 URL

.net - 源代码文档工具

c# - .net 项目和设计器文件的属性错误被锁定

c# - DllImport - 尝试加载格式不正确的程序