你如何点击一个类按钮在网络工具包浏览器中

本文关键字:网络 按钮 网络工具 工具包 浏览器 一个 何点击 | 更新日期: 2023-09-27 17:56:17

我有一个类按钮的代码:

<a class="bid-button-link button-big" href="/bid.php?scheck=fb7520ee7496e528b90117fa46dcb2ad&id=4042" title="4042"></a>

我通常可以使用常规浏览器执行此操作:

HtmlElementCollection elc = this.webBrowser1.Document.GetElementsByTagName("a");  
foreach (HtmlElement el in elc)  
{  
    if (el.GetAttribute("class") == "bid-button-link button-big") 
    {  
        el.InvokeMember("click");  
    }  
} 

但是由于我使用的是WebKitBrowser,我不能这样做。我用这个代码做了一个可以得到按钮:

foreach (Node bidButton in webBrowser1.Document.GetElementsByTagName("a"))
{
    if (((Element)bidButton).GetAttribute("class") == "bid-button-link button-big")
    {
        //Code to click the button
    }
}

但是我没有任何办法点击按钮,因为WebKitBrowser没有.InvokeMember("Click")的选项

没有办法点击按钮,即使它是一个Class Button

你如何点击一个类按钮在网络工具包浏览器中

如您所知,在Visual C#(WebBrowser)的普通框架中,您可以执行以下操作:

WebBrowser.Document.GetElementById("the ID").click()

但是在 WebKitBrowser 中没有定义 click() 方法,你也可以用这个函数模拟 click 方法的 JavaScript 代码:

WebBrowser.StringByEvaluatingJavaScriptFromString("Document.GetElementById('the ID').click();")

希望这对您有所帮助!

编辑:

将您的代码更改为以下内容:

foreach (Node bidButton in webBrowser1.Document.GetElementsByTagName("a"))
{
    if (((Element)bidButton).GetAttribute("class") == "bid-button-link button-big")
    {
        bidButton.SetElement("id","Bidbutton")
        WebBrowser.StringByEvaluatingJavaScriptFromString("Document.GetElementById('BidButton').click();")
    }
}

上面的建议对我有用,但只有在我第一次调用 focus() 之后,如果您遇到问题,请尝试一下。

例如:

webKitBrowser.StringByEvaluatingJavaScriptFromString("document.getElementsByTagName('input')[7].focus();") 
webKitBrowser.StringByEvaluatingJavaScriptFromString("document.getElementsByTagName('input')[7].click();")

bidButton.click()怎么样?不知道您正在使用哪些 webkit 绑定,但大多数实现中都提供了单击功能。