CefSharp Winforms-在显示浏览器之前执行JavaScript

时间:2018-11-28 22:07:18

标签: c# cefsharp

我正在尝试加载页面并执行一些JavaScript,然后再向用户显示浏览器。这是因为我希望在它们显示之前像某些硒一样引导它们通过某些屏幕,并且我只想在需要他们输入时才显示它(Wich在第二个页面加载之后)。

不幸的是,我不能直接转到该页面,我必须先单击一个链接。但是无论我尝试什么,它仍然会显示浏览器,然后执行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;
        }

0 个答案:

没有答案
相关问题