c# - CefSharp Winforms - 在显示浏览器之前执行 javascript
问题描述
在向用户显示浏览器之前,我正在尝试加载页面并执行一些 JavaScript。这是因为我想在他们显示之前让他们通过一些屏幕(像硒一样),并且我只想在需要他们输入时显示它(这是在第二次页面加载之后)。
不幸的是我不能直接去那个页面,我必须先点击一个链接。但无论我尝试什么,它仍然会显示浏览器,然后执行 JavaScript。我当前的测试如下,正在玩 browser.visible,但这也不起作用,我仍然看到 js 正在执行。
(站点和 JavaScript 是虚拟值)
public ChromiumWebBrowser browser;
public void InitBrowser()
{
Cef.Initialize(new CefSettings());
browser = new ChromiumWebBrowser("https://www.bing.com/");
this.Controls.Add(browser);
browser.Visible = false;
browser.FrameLoadEnd += (sender, args) =>
{
//Wait for the MainFrame to finish loading
if (args.Frame.IsMain)
{
//do this first
browser.ExecuteScriptAsyncWhenPageLoaded("document.getElementById('sb_form_q').value = 'test';",true);
browser.ExecuteScriptAsyncWhenPageLoaded("document.getElementById('sb_form_go').click();",true);
}
};
browser.FrameLoadEnd += (sender, args) =>
{
//Wait for the MainFrame to finish loading
if (args.Frame.IsMain)
{
//when page is loaded again, do this:
browser.ExecuteScriptAsync("document.getElementById('hplogo').src='https://logos-download.com/wp-content/uploads/2016/02/bing-tm-logo.png'");
}
};
//then show browser again
browser.Visible = true;
}
解决方案
推荐阅读
- amazon-web-services - CreateNodegroup InvalidRequestException - “参数 groupId 的值 () 无效”
- haskell - 编写递归列表函数时出现非详尽模式错误
- reactjs - React 在开发和生产中运行有什么区别?
- bazel - 如何使用 bazel 与 cppkafka 一起构建
- android - 响应中的 java.lang.NumberFormatException
- css - 网格行应该适合内容的高度
- ios - 使用 UIViewControllerRepresentable 时 UIViewController 子视图的大小/布局不正确(没有情节提要)
- vba - 仅在电子邮件有附件时运行
- javascript - 如何在算法中优化内存
- flutter - 我正在尝试提出获取请求,但我不断收到此问题