【发布时间】:2011-02-09 12:35:08
【问题描述】:
我想直接将键发送到 c# web 浏览器控件元素,而不仅仅是具有正确焦点的窗口。
现在我可以使用 PostMessage 和 documentHandle 发送密钥并像这样聚焦
即伪代码
HtmlElement el = getelement();
el.Focus();
IntPtr docptr = browser.Handle;
PostMessage(docptr,WM_KEYDOWN,1,0);
.... KEYCHAR, KEYUP..
我想知道是否有人知道可以在后台执行此操作的任何方法,以便焦点不在元素上。基本上有一种方法可以将 IntPtr 获取到 HtmlElement 本身,而不是在 PostMessage 或 SendKeys API 而不是浏览器句柄/ptr 中使用它。
【问题讨论】:
-
与其描述您的解决方案以及如何使其发挥作用,不如描述您试图解决的问题。同时,如果您需要基本的 Web 应用程序测试人员,请参阅 seleniumhq.org。
-
我要解决的问题就是我要问的问题。我想直接将密钥发送到 HTMLElement,而不必通过窗口引用它并设置焦点。 aka 如何或有办法将 IntPtr 获取到 HtmlElement。我意识到那里有很多测试框架,我之前使用过的很多测试框架,比如 selenium,可以做这样的事情,但是我正在寻找一个 Win32/C# 解决方案。
-
HTML 元素没有自己的窗口(IE6 中的
<select>除外),因此它们不会有单独的句柄。
标签: c# browser sendkeys postmessage