Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WebBrowser控件-按类型获取元素?_C#_.net_Webbrowser Control - Fatal编程技术网

C# WebBrowser控件-按类型获取元素?

C# WebBrowser控件-按类型获取元素?,c#,.net,webbrowser-control,C#,.net,Webbrowser Control,我需要在C中按类型获取元素,HTML如下所示: <button type="submit" class="orangeBtn">Send Invitations</button> 有没有其他的工作方法可以做到这一点 这不是我的服务器,因此我无法编辑HTML或添加jquery 我正在制作一个自动应用程序,向我想加入的朋友发送邀请,但他们制作的按钮没有如上所示的id或名称,因此是否有其他方法在C#中调用(“单击”)按钮 谢谢。一个没有id或名称的按钮会提交任何表单,如果你知

我需要在C中按类型获取元素,HTML如下所示:

<button type="submit" class="orangeBtn">Send Invitations</button>
有没有其他的工作方法可以做到这一点

这不是我的服务器,因此我无法编辑HTML或添加jquery

我正在制作一个自动应用程序,向我想加入的朋友发送邀请,但他们制作的按钮没有如上所示的id或名称,因此是否有其他方法在C#中调用(“单击”)按钮


谢谢。

一个没有id或名称的按钮会提交任何表单,如果你知道HTML,那么表单有id吗?如果是这样,您可以通过表单的id找到表单,并调用表单的submit方法

事实上,您最好找出该表单的所有字段,然后自己发布:

var inputs = new NameValueCollection();
inputs.Add("field1", "value1");
inputs.Add("field2", "value2");
inputs.Add("field3", "value3");

System.Net.WebClient Client = new WebClient();
Client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
byte[] POSTResultData = Client.UploadValues(postUrl, inputs);

您可以使用
GetElementsByTagName

var elements = m_Browser.Document.GetElementsByTagName("button");
foreach (HtmlElement element in elements)
{
     // If there's more than one button, you can check the
     //element.InnerHTML to see if it's the one you want
     if (element.InnerHTML.Contains("Send Invitations"))
     {
          element.InvokeMember("click");
     }
}

我已经尝试了以下代码,并且成功了

HtmlElementCollection htmlcol = ((WebBrowser)sender).Document.GetElementsByTagName("input");
for (int i = 0; i < htmlcol.Count; i++)
            {
                if (htmlcol[i].GetAttribute("value") == "Search")
                {
                    htmlcol[i].InvokeMember("click");
                }
            }
HtmlElementCollection htmlcol=((WebBrowser)发送方).Document.GetElementsByTagName(“输入”);
for(int i=0;i
我在以下情况下尝试了此代码

<input type="submit" value="Search">

你也可以尝试这样的html标签,我希望它将为你工作。。。
享受

您的平台是什么?asp?银灯?winforms?wpf?(等等)
<input type="submit" value="Search">