winform中嵌入cefsharp, 并使用selenium控制

 正常说, 需要安装的包

 

 下面是所有的包

 全部代码

using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using System;
using System.Windows.Forms;
using CefSharp.WinForms;
using CefSharp;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
         //cef
        public ChromiumWebBrowser chromiumwebBrowser;
        //selecnium
        public ChromeDriver driver;
        public Form1()
        {
            InitializeComponent();
            var settings = new CefSettings
            {
                Locale = "zh-CN"
            };
            settings.RootCachePath = AppDomain.CurrentDomain.BaseDirectory + "caches\\";
            settings.PersistSessionCookies = true;
            settings.PersistUserPreferences = true;
            settings.RemoteDebuggingPort = 9516;
            Cef.Initialize(settings);

            var AccountContext = new RequestContext(new RequestContextSettings()
            {
                CachePath = AppDomain.CurrentDomain.BaseDirectory + "caches\\global1\\",
                PersistSessionCookies = true,
                PersistUserPreferences = true
            });

            chromiumwebBrowser = new ChromiumWebBrowser("chrome://version/", AccountContext);
            BrowserSettings browserSettings = new BrowserSettings();
            chromiumwebBrowser.BrowserSettings = browserSettings;

            this.Controls.Add(chromiumwebBrowser);
            chromiumwebBrowser.Dock = DockStyle.Fill;
            
        }

        private void button1_Click(object sender, EventArgs e)
        {

            var chromedriverservice = ChromeDriverService.CreateDefaultService("D:\\chromdriver");
            var options = new ChromeOptions();
            options.DebuggerAddress = "localhost:9516";

            driver = new ChromeDriver(chromedriverservice, options);
            driver.Navigate().GoToUrl("https://cn.bing.com/");

            driver.FindElement(By.Id("sb_form_q")).SendKeys("helloworld");

            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(2);
            
            driver.FindElement(By.Id("search_icon")).Click();

            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

            driver.Quit();

        }
    }
}

需要注意的地方

1. selenium, 要下载3版本的。

2. 下载的驱动, 必须和cefsharp一致。 

 

第一次写c#, 原以为网上应该有很多相关的资料了, 搜了半天都找不到, 自己研究了半天才弄出来。

 以后自己写个脚本就方便了,需要的可以试试

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值