C# Chrome浏览器网页自动化操作
NuGet 包管理器 安装 WebDriver
自动登录QQ邮箱
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WindowsFormsApp3
{public partial class Form1 : Form{public Form1(){InitializeComponent();}ChromeDriver webDriver;private void Form1_Load(object sender, EventArgs e){ChromeOptions options = new ChromeOptions();webDriver = new ChromeDriver(@"C:\Program Files\Google\Chrome\Application\", options);//Chrome目录WebDriverWait wait = new WebDriverWait(webDriver, TimeSpan.FromSeconds(5));//设置读取超时时间try{wait.Until(contion =>{try{webDriver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(5);//加载页面超时webDriver.Navigate().GoToUrl("https://mail.qq.com");return true;}catch { return false; }});}catch { }try{IWebElement controlPanelFrame = null;IList<IWebElement> frames = webDriver.FindElements(By.TagName("iframe"));foreach (var frame in frames){if (frame.GetAttribute("id") == "login_frame"){controlPanelFrame = frame;break;}}if (controlPanelFrame != null){//var a = webDriver.FindElement(By.XPath("//iframe[starts-with(@id, 'mainFrame')]"));webDriver.SwitchTo().Frame(controlPanelFrame);//选择Frame}webDriver.FindElement(By.XPath("//input[contains(@id, 'u') and contains(@name, 'u')]")).SendKeys("qq号码@qq.com");webDriver.FindElement(By.XPath("//input[contains(@id, 'p') and contains(@name, 'p')]")).SendKeys("密码");string logintxt = webDriver.FindElement(By.XPath("//label[contains(@id, 'uin_tips')]")).GetAttribute("innerHTML");string loginbbbstr = webDriver.FindElement(By.XPath("//a[contains(@class, 'login_button')]")).GetAttribute("href");if (loginbbbstr == "javascript:void(0);" && logintxt== "支持QQ号/邮箱/手机号登录"){webDriver.FindElement(By.XPath("//a[contains(@href, 'javascript:void(0);') and contains(@class, 'login_button')]")).Click();}webDriver.SwitchTo().DefaultContent();//跳出Frame}catch{}}private void Form1_FormClosing(object sender, FormClosingEventArgs e){try{webDriver.Quit();}catch{ }}}
}
CNPM Binaries Mirrorhttps://registry.npmmirror.com/binary.html?path=chromedriver/99.0.4844.51/
var option = new ChromeOptions(); //是否隐藏浏览器,如果注释掉的话,那么会在启动的时候打开谷歌浏览器,在页面上可以看到填单的操作,如果取消的话,就只有cmd窗口,谷歌浏览器隐匿运行 option.AddArgument("headless"); options.AddArgument("--window-position=-32000,-32000"); option.AddArgument("window-size=1920,1080");
这个是题外话,需要的可以设置下,就是让谷歌浏览器不弹出来,隐匿运行
//设置cmd窗口不弹出来 ChromeDriverService service = ChromeDriverService.CreateDefaultService(System.AppDomain.CurrentDomain.BaseDirectory.ToString()); // ChromeDriverService service = ChromeDriverService.CreateDefaultService(@"C:\Program Files\Google\Chrome\Application\"); service.HideCommandPromptWindow = true; webDriver = new ChromeDriver(service, option);
C# Chrome浏览器网页自动化操作相关推荐
- 谷歌浏览器怎么查看网页源代码 Chrome浏览器网页源代码查看技巧分享
凭借简单.高效的使用体验,谷歌开发的网页浏览器"Chrome"在国内也不乏粉丝,甚至一度被视为装机必备的软件之一.但其操作方式和界面设计,与国产浏览器略有不同!那么,谷歌浏览器要怎 ...
- chrome浏览器网页版_如何在Chrome(或任何浏览器)中编辑任何网页
chrome浏览器网页版 Web pages are just documents your web browser displays. But what if you could type dire ...
- selenium入门超详细教程——网页自动化操作
文章目录 简介 一.环境安装 1.selenium安装 2.安装浏览器驱动 2.1 确定浏览器版本 2.2 下载驱动 二.基础用法 1.对页面进行操作 1.1 初始化浏览器对象 1.2 访问页面 1. ...
- Python对浏览器的自动化操作(商品监控下单)
文章目录 1.起因 2.需求 3.准备环境 1.[ pip的使用 ] 2.下载插件 3.插件放在Python根目录 4.运行测试 1.无货测试 2.有货测试 5.彩蛋 1.起因 这篇文章应该是前年和教 ...
- 解决Ubuntu上安装chrome浏览器网页空白的问题
最近在Ubuntu上安装chrome浏览器,出现打开网页后网页空白的问题,由于是小白,刚接触Ubuntu,所以很多都不懂,欢迎大家讨论. 安装完chrome后,在终端窗口输入: /usr/bin/go ...
- Chrome浏览器网页保存成图片
Chrome浏览器把整个网页保存成图片 1.使用快捷键 F12打开开发人员工具功能, 2.按 快捷键Ctrl + Shift + P(Mac 为 ⌘Command + ⇧Shift + P) 3.输入 ...
- 解决 Chrome浏览器网页上出现光标,无法通过键盘方向键实现页面滚动的问题
本博客解决了在使用新版chrome浏览器时存在的一个诡异现象,网页上点击任何东西都会出现光标,就像在word软件中一样,并且无法使用键盘的上下方向键让页面滚动起来. 问题描述 如下图所示,网页中有一个 ...
- Chrome浏览器 网页长截图方法
平时我们在浏览网页的时候,碰到自己喜欢的页面,想要截图而自己的显示器窗口高度有限,我下面将为大家分享这种方式,获得整个网页的截图.一起来开始吧: 首先,我们用到的浏览器是谷歌的Chrome浏览器. 第 ...
- Chrome浏览器网页保存为mhtml
1 配置Chrome浏览器 Chrome浏览器要想保存为mhtml的话,以前是在chrome://flags下搜索mhtml然后点击启用即可 但是新版本没有了这个功能,新版本是如下这么设置 右键chr ...
最新文章
- Python游戏开发:最强大脑第一关,数字华容道
- EBS报表 查看输出 FNDWRR.exe
- Mybatis openSession.commit()手动提交数据和openSession.commit(true)自动动提交数据
- 单体应用 适合采用 dapr 构建吗?
- 内存泄漏Valgrind
- java 提高性能的 容器库_容器隔离性带来的问题--容器化Java应用比虚机启动速度慢...
- (需求实战_进阶_04)SSM集成RabbitMQ 通配符模式 关键代码讲解、开发、测试
- 赛锐信息:SAP进化论
- oracle 检查链接数,oracle连接数检查
- 性能测试--jmeter中使用jsonpath提取响应结果【17】
- springSecurity 基于方法权限控制@RolesAllowed @Serured @PreAuthorize 与 页面端标签控制权限...
- MySQL(7)-----常用约束
- 三相桥式全控整流电路simulink仿真_交流变直流,二极管整流电路是如何工作的?...
- JS 获取当前浏览器版本,验证浏览器版本是否高于谷歌80
- 《今日简史》一、旧故事已然崩坏,新故事尚未构建
- 品牌数字化转型|借势营销节点,3 招解锁品牌营销力
- Prometheus + Grafana 图形化监控实践
- MySQL查询优化方法
- input的各种事件
- 5/17/2015 今週日本語勉強の纏め