你如何点击一个类按钮在网络工具包浏览器中
本文关键字:网络 按钮 网络工具 工具包 浏览器 一个 何点击 | 更新日期: 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 绑定,但大多数实现中都提供了单击功能。