您需要编写一段 javascript 代码并在页面加载时运行它。
页面加载后运行脚本
要在页面加载后运行代码,可以使用ExecuteScriptAsyncWhenPageLoaded方法,也可以处理FrameLoadEnd或LoadingStateChanged。
DOM 操作 - 查找元素、设置值、点击按钮
对于 javascript 代码,您可以使用任何可用的 javascript 函数。例如使用getElemenetsByName、getElementsByTagName 或getElementById 查找元素。
找到元素后,您可以设置它的value,或者例如对于一个按钮,您可以通过调用其click() 方法来单击它。
CefSharp 示例 - 浏览 URL,填写输入并单击按钮
以下代码将ChromiumWebBrowser 控件添加到Form。然后它浏览google 并在搜索框中填写文本并点击搜索按钮:
//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);
}
示例 2
在以下示例中,您可以使用ExecuteScriptAsync 在搜索框中填充文本并以编程方式单击搜索按钮:
//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);
}
注意:在你的情况下,对于kahoot.it,脚本应该是:
var script = @"
document.getElementById('game-input').value = '123';
document.getElementsByTagName('button')[0].click();
";