繁体   English   中英

CefSharp Browser SendKeys的问题

[英]Issue With CefSharp Browser SendKeys

我正在使用铬浏览器来自动执行某项任务。

基本上我想加载图片,我必须在网页上点击“添加图片”锚标记。

所以我不能直接点击它不知道为什么当其他工作相同的代码。 但我已设法将重点放在该锚标签上,但发送:

 KeyEvent k = new KeyEvent();
 k.WindowsKeyCode = 9;  // TAB KEY
 browser.GetBrowser().GetHost().SendKeyEvent(k); 
 //browser = ChromiumWebBrowser browser;

上面的工作完全正常,因为我看到它正确的锚标签。

现在我做:

 KeyEvent k = new KeyEvent();
 k.WindowsKeyCode = 13;   //ENTER KEY
 browser.GetBrowser().GetHost().SendKeyEvent(k);

要模拟输入密钥,但是没有任何反应,但是如果我在关键字上手动按“Enter”它就可以正常工作,那么为什么上述内容与我点击“输入密钥”的行为不一样

有什么建议么。

我用这样的代码,它对我有用。

KeyEvent k = new KeyEvent();
k.WindowsKeyCode = 0x0D;
k.FocusOnEditableField = true;
k.IsSystemKey = false;
k.Type = KeyEventType.Char;
Browser.GetBrowser().GetHost().SendKeyEvent(k);

花了这么多时间,但发现接受的答案对于解决这个问题很有用:

KeyEvent k = new KeyEvent
{
    WindowsKeyCode = 0x0D, // Enter
    FocusOnEditableField = true,
    IsSystemKey = false,
    Type = KeyEventType.KeyDown
};

_browser.GetBrowser().GetHost().SendKeyEvent(k);

Thread.Sleep(100);

k = new KeyEvent
{
    WindowsKeyCode = 0x0D, // Enter
    FocusOnEditableField = true,
    IsSystemKey = false,
    Type = KeyEventType.KeyUp
};

_browser.GetBrowser().GetHost().SendKeyEvent(k);

Thread.Sleep(100);

注意KeyEventType.KeyDown然后发送KeyEventType.KeyUp

灵感来自CEF Simulate Mousedown和Keysend以及CefSharp网页元素点击

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM