如何使用CefSharp登录和导航代码

时间:2015-08-22 09:37:40

标签: c# wpf cefsharp

我在WPF应用程序中使用CefSharp并希望加载网站,登录然后导航到同一网站的一部分。加载网站并登录正常。但是当我尝试导航到特定的URL时,我不再登录了。当我手动点击CefSharp浏览器控件中的链接时,情况并非如此。这是我基本上做的事情:

public class MainWindow
{
   public MainWindow()
   {
       Cef.Initialize(new CefSettings()
       {
            CachePath = "C:\\Users\\Documents\\CefCachePath"
       });
       InitializeComponent();
       AutoNavigation()
   }

   private async void AutoNavigation()
   {
       await InvokeBrowserActionAsync(browser, () => browser.Address = loginUrl);
       await InvokeBrowserActionAsync(browser, () => browser.ExecuteScriptAsync(loginScript);
       await InvokeBrowserActionAsync(browser, () => browser.Address = targetUrl);
   }

    public static Task InvokeBrowserActionAsync(ChromiumWebBrowser browser, Action action)
    {
        var tcs = new TaskCompletionSource<bool>();
        EventHandler<NavStateChangedEventArgs> handler = null;
        handler += (sender, args) =>
        {
            if (!args.IsLoading)
            {
                browser.NavStateChanged -= handler;
                tcs.TrySetResult(true);
            }
        };
        browser.NavStateChanged += handler;
        action.Invoke();
        return tcs.Task;
    }
}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

如果没有更具体的信息,我会下划线来比较线路上发生的通信,例如使用Fiddler等工具为您的手册和AutoNavigation()驱动案例。寻找丢失的Authorization:标题等