I am using chromium browser to automate some task.
Basically I want to load images for that I have to click "Add Image" anchor tag on the webpage.
So I cannot directly click it not sure why when other works with same code. But I have managed to bring the focus on that anchor tag but sending :
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = 9; // TAB KEY
browser.GetBrowser().GetHost().SendKeyEvent(k);
//browser = ChromiumWebBrowser browser;
The above work perfectly fine as i see it coming to the correct anchor Tag.
Now i do :
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = 13; //ENTER KEY
browser.GetBrowser().GetHost().SendKeyEvent(k);
To simulate enter key , however nothing happens but if I press "Enter" manually on Keyword it works fine so why the above is not acting same as me clicking "Enter Key"
Any suggestions.
I used your code like this, and it works for me.
KeyEvent k = new KeyEvent();
k.WindowsKeyCode = 0x0D;
k.FocusOnEditableField = true;
k.IsSystemKey = false;
k.Type = KeyEventType.Char;
Browser.GetBrowser().GetHost().SendKeyEvent(k);
So much time spent, but found the accepted answer useful to get to the bottom of this:
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);
Notice the KeyEventType.KeyDown
and then KeyEventType.KeyUp
is sent.
Inspired by CEF Simulate Mousedown and Keysend and CefSharp webpage element click.