C# 以编程方式调用按钮单击

C# 以编程方式调用按钮单击,c#,asp.net,C#,Asp.net,我想用编程的方式点击网页上的按钮,源代码如下 <input alt="BusiBtn" class="aButtn" type="submit" value="Search" tabindex="16"> 我获取的对象引用未设置为对象错误的实例 有人能帮忙吗 谢谢 Rashmi您使用的字段错误 alt表示替代文本 实际上,您并没有给该按钮一个BusiBtn的id 尝试: 线索在GetElementByID调用中。它不被称为GetElementByAlt是有原因的 您使用了错误的字段

我想用编程的方式点击网页上的按钮,源代码如下

<input alt="BusiBtn" class="aButtn" type="submit" value="Search" tabindex="16">
我获取的对象引用未设置为对象错误的实例

有人能帮忙吗

谢谢
Rashmi

您使用的字段错误

alt表示替代文本

实际上,您并没有给该按钮一个BusiBtn的id

尝试:


线索在GetElementByID调用中。它不被称为GetElementByAlt是有原因的

您使用了错误的字段

alt表示替代文本

实际上,您并没有给该按钮一个BusiBtn的id

尝试:


线索在GetElementByID调用中。它不被称为GetElementByAlt是有原因的

将'name'属性添加到输入标记,然后使用GetElementsByName属性

将'name'属性添加到输入标记,然后使用GetElementsByName属性

您应该使用GetElementsByTagName方法而不是GetElementById来获取页面上的所有输入元素,然后循环使用GetAttribute。这里可以找到一个例子

应该使用GetElementsByTagName方法而不是GetElementById来获取页面上的所有输入元素,然后使用GetAttribute循环。这里可以找到一个例子

在这种情况下,只需找到所有具有输入标记的HTMLElement即可。如果您通常需要调用所有输入标记,那么只需调用并单击它们即可。如果只需要上面的输入元素,则过滤所有输入标记,以搜索具有上述属性值的特定标记。请查看以下代码:

HtmlElementCollection elems = b.Document.GetElementsByTagName("input");

foreach (HtmlElement elem in elems)
{
    string altStr = elem.GetAttribute("alt");
    string classStr = elem.GetAttribute("class");
    string typeStr = elem.GetAttribute("type");
    string valueStr = elem.GetAttribute("value");
    string tabindexStr = elem.GetAttribute("tabindex");

    if((altStr == "BusiBtn") && (classStr == "aButtn") && (typeStr == "submit") && (valueStr == "Search") && (tabindexStr == "16"))
    {
        elem.InvokeMember("click");
        break;
    }
}

在这种情况下,您可以做的只是找到所有具有输入标记的HtmlElement。如果您通常需要调用所有输入标记,那么只需调用并单击它们即可。如果只需要上面的输入元素,则过滤所有输入标记,以搜索具有上述属性值的特定标记。请查看以下代码:

HtmlElementCollection elems = b.Document.GetElementsByTagName("input");

foreach (HtmlElement elem in elems)
{
    string altStr = elem.GetAttribute("alt");
    string classStr = elem.GetAttribute("class");
    string typeStr = elem.GetAttribute("type");
    string valueStr = elem.GetAttribute("value");
    string tabindexStr = elem.GetAttribute("tabindex");

    if((altStr == "BusiBtn") && (classStr == "aButtn") && (typeStr == "submit") && (valueStr == "Search") && (tabindexStr == "16"))
    {
        elem.InvokeMember("click");
        break;
    }
}

请不要在问题标题中包含有关语言的信息,除非没有它就没有意义。标签用于此目的。请不要在问题标题中包含有关语言的信息,除非没有它就没有意义。标记用于此目的。这就是源代码的外观。如果元素没有ID,那么GetElementByID将不适用于您。使用另一个可以匹配已知值的方法。这就是源代码的外观。如果元素没有ID,那么GetElementByID将不适用于您。使用其他可用的方法,可以匹配已知值。这不是我们的网站。我正在抓取某人的网站,希望通过单击按钮以编程方式下载信息。这不是我们的网站。我正在抓取某人的网站,希望通过单击按钮以编程方式下载信息。
HtmlElementCollection elems = b.Document.GetElementsByTagName("input");

foreach (HtmlElement elem in elems)
{
    string altStr = elem.GetAttribute("alt");
    string classStr = elem.GetAttribute("class");
    string typeStr = elem.GetAttribute("type");
    string valueStr = elem.GetAttribute("value");
    string tabindexStr = elem.GetAttribute("tabindex");

    if((altStr == "BusiBtn") && (classStr == "aButtn") && (typeStr == "submit") && (valueStr == "Search") && (tabindexStr == "16"))
    {
        elem.InvokeMember("click");
        break;
    }
}