C# HtmleElement-填充它并使其像键盘填充一样

C# HtmleElement-填充它并使其像键盘填充一样,c#,.net,browser,sendkeys,C#,.net,Browser,Sendkeys,我正在用C.NET2.0编写一个自动完成刮板程序。我尝试了很多技巧在一个特定的网站上制作一个输入框来显示它的自动完成建议。因为我正在用HtmlElement.SetAttributeBlah填充它,所以它不像是手动填充的,所以它不会显示自动完成建议 SendKeys是一个非常糟糕的解决方案,因为它既不易察觉又很糟糕。 我尝试了HtmleElement.InvokeMemberWithEveryoption,但它什么也没做。 我尝试了SendMessage PInvoke,但没有发现对我的网络浏览

我正在用C.NET2.0编写一个自动完成刮板程序。我尝试了很多技巧在一个特定的网站上制作一个输入框来显示它的自动完成建议。因为我正在用HtmlElement.SetAttributeBlah填充它,所以它不像是手动填充的,所以它不会显示自动完成建议

SendKeys是一个非常糟糕的解决方案,因为它既不易察觉又很糟糕。 我尝试了HtmleElement.InvokeMemberWithEveryoption,但它什么也没做。 我尝试了SendMessage PInvoke,但没有发现对我的网络浏览器有任何影响。 是否有一种现有的解决方案可以将密钥或虚拟密钥发送到WebBrowser,以便触发输入框的自动提示

[编辑]


我已经能够通过Wireshark查看正在获取的内容。我以前没想过。我只需要将我的WebBrowser cookie转换并附加到WebRequest cookie,然后使用直接自动完成URL。现在,我可以快速获得自动完成建议,而无需定时器和SetAttribute。直到我被禁止。事实上,不再需要WebBrowser,因为只有会话cookie是重要的,不需要SetAttribute。我认为前一个问题可能没有解决办法。

难道你不能直接阅读浏览器的自动完成条目吗?如果您找不到有关如何存储它们的文档,则可以使用ProcessExplorer查看手动按下按钮或提交带有自动完成字段的表单时发生的情况…确定。我来看看ProcessExplorer。该页面用HTML5和jQuery编码。自动完成项目在按键事件后刷新。即,键控后1秒。如果没有按下任何键并且输入框已由SetAttribute填充,则不确定它们是否被存储。我认为问题是关于特定网站上的某种自定义自动完成,而不是默认的浏览器自动完成,它只是提示您以前输入的字符串,对吗?在这种情况下,process explorer将无法帮助您。您可能需要查看源代码,并了解特定的自动完成脚本是如何准确实现的。是的,我说的是一种jQuery自动完成,因此它与流程本身没有联系。经过一些wireshark分析,我得出结论,在所有情况下,我都可以轻松地看到无ssl版本的网站在哪里获取自动完成数据。我尝试过eBay、谷歌和亚马逊,模式也很相似。总会有一个url从以前的cookie中发布查询和会话ID,并获取JSON数据。我解决了。看看这是怎么做的