我有一个类按钮的代码:
<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
,有没有办法点击该按钮?
答案 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功能。