You need to write a piece of javascript code and run it when the page loaded.
Run script after page loaded
To run the code after the page loaded, you can use ExecuteScriptAsyncWhenPageLoaded
method or you can handle FrameLoadEnd
or LoadingStateChanged
.
DOM manipulation - find element, set value, click on button
For the javascript code, you can use any of the available javascript functions. for example find the element using getElemenetsByName
, getElementsByTagName
or getElementById
.
After you found the element, you can set its value
or for example for a button you can click on it by calling its click()
method.
CefSharp Example - Browse a URL, fill an input and click on a button
The following code, adds a ChromiumWebBrowser
control to a Form
. Then it browses google and fill the search box with a text and clicks on the search button:
//using CefSharp;
//using CefSharp.WinForms;
ChromiumWebBrowser browser;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
browser = new ChromiumWebBrowser("https://www.google.com/");
browser.Dock = DockStyle.Fill;
Controls.Add(browser);
var script = @"
document.getElementsByName('q')[0].value = 'CefSharp C# Example';
document.getElementsByName('btnK')[0].click();
";
browser.ExecuteScriptAsyncWhenPageLoaded(script);
}
Example 2
In the following example, using ExecuteScriptAsync
you can fill the search box with a text and clicks on the search button programmatically:
//using CefSharp;
//using CefSharp.WinForms;
ChromiumWebBrowser browser;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
browser = new ChromiumWebBrowser("https://www.google.com/");
browser.Dock = DockStyle.Fill;
Controls.Add(browser);
}
private void button1_Click(object sender, EventArgs e)
{
var script = @"
document.getElementsByName('q')[0].value = 'CefSharp C# Example';
document.getElementsByName('btnK')[0].click();
";
browser.ExecuteScriptAsync(script);
}
Note: In your case, for kahoot.it, the script should be:
var script = @"
document.getElementById('game-input').value = '123';
document.getElementsByTagName('button')[0].click();
";