CefSharp 浏览器 SendKeys 问题
Issue With CefSharp Browser SendKeys
我正在使用 chromium 浏览器来自动执行一些任务。
基本上我想加载图像,我必须单击网页上的 "Add Image" 锚标记。
所以我不能直接点击它不知道为什么其他人使用相同的代码。但是我已经设法将焦点放在那个锚标记上但是发送了:
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" 它工作正常所以为什么上面的行为与我点击 "Enter Key"
的行为不同
任何建议。
我这样使用你的代码,它对我有用。
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 and Keysend and 。
我正在使用 chromium 浏览器来自动执行一些任务。
基本上我想加载图像,我必须单击网页上的 "Add Image" 锚标记。
所以我不能直接点击它不知道为什么其他人使用相同的代码。但是我已经设法将焦点放在那个锚标记上但是发送了:
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" 它工作正常所以为什么上面的行为与我点击 "Enter Key"
的行为不同任何建议。
我这样使用你的代码,它对我有用。
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 and Keysend and