如何单击WebKitBrowser中的类按钮?

时间:2014-04-02 14:23:38

标签: c# button webkit click

我有一个类按钮的代码:

<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,有没有办法点击该按钮?

3 个答案:

答案 0 :(得分:3)

如您所知,在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();")
    }
}

答案 1 :(得分:0)

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

例如:

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

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

答案 2 :(得分:-1)

bidButton.click()怎么样?不知道您正在使用哪个webkit绑定,但大多数工具都提供了click功能。