当前位置: 首页 > news >正文

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{//cefpublic ChromiumWebBrowser chromiumwebBrowser;//selecniumpublic 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#, 原以为网上应该有很多相关的资料了, 搜了半天都找不到, 自己研究了半天才弄出来。

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

http://www.lryc.cn/news/116886.html

相关文章:

  • 【leetcode】349. 两个数组的交集(easy)
  • leetcode 2616. 最小化数对的最大差值
  • npm install 安装慢的问题处理
  • 【JAVA】七大排序算法(图解)
  • UNIX 系统概要
  • Unity 基础函数
  • 【学习】若依源码(前后端分离版)之 “ 上传图片功能实现”
  • vue3 excel 导出功能
  • python 相关框架事务开启方式
  • vue使用ElementUI
  • Python做一个绘图系统3:从文本文件导入数据并绘图
  • flutter开发实战-获取Widget的大小及位置
  • 软件测试工程师面试如何描述自动化测试是怎么实现的?
  • Qt5兼容使用之前Qt4接口 intersect接口
  • 【云原生】Kubernetes节点亲和性分配 Pod
  • 【Essential C++课后练习】纯代码(更新中)
  • C#仿热血江湖GClass
  • [SQL智慧航行者] - 用户购买商品推荐
  • Idea配置Scala开发环境
  • LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器
  • Android APK体积优化(瘦身)
  • python技术栈 之 单元测试中mock的使用
  • python 提取冒号和逗号内的字符串
  • CentOS安装Postgresql
  • 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)...
  • 多用户跨境电商商品库系统快速搭建(全开源)
  • DataGrip 配置 HiveServer2 远程连接访问
  • 异常的使用
  • 软件安全测试包含哪些内容和方法?安全测试报告的必要性
  • 【代码随想录-leetcode第四题 20.有效的括号】