我厌倦了用 Gecko 网络浏览器模拟谷歌搜索。到目前为止,我已经能够去谷歌页面,然后搜索这样的东西:
geckoWebBrowser1.Navigate("https://www.google.com/");
await Task.Run(() => CheckDocumentLoaded());
var page = geckoWebBrowser1.Document.GetElementById("lst-ib");
(page as GeckoHtmlElement).Focus();
(page as GeckoInputElement).Value = "something";
现在我只想点击搜索按钮。所以我把这个添加到第一部分:
var button = new GeckoButtonElement(geckoWebBrowser1.Document.GetElementById("mKlEF").DomObject);
button.Click();
但有趣的事情发生了。如果我在第一部分之后运行此代码,则不会发生任何事情。但是如果我创建了一个按钮并将代码放在上面,它就可以正常工作。
private void Button1_Click(object sender, EventArgs e)
{
var button = new GeckoButtonElement(geckoWebBrowser1.Document.GetElementById("mKlEF").DomObject);
button.Click();
return;
}
但我必须手动单击按钮才能使其工作。它真的很混乱。我不知道是什么原因造成的!!
笔记:
如果你想让代码工作,你必须使用这个用户代理: (Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko)
我不想使用SendKeys.Send("{ENTER}")
.
如果我以编程方式按下按钮,它也不起作用。
汪汪一只猫
相关分类