selenium打开指定Chrome账号
selenium打开指定Chrome账号
获取User Data路径
打开目标Chrome,在搜索栏输入chrome://version,找到“个人资料路径”。
这里获取到的路径为:C:\Users\Admin\AppData\Local\Google\Chrome\User Data,去掉后面的\Profile 2。

获取--profile-directory值
方法一:
上图User Data路径末尾的“Profile 2”即为--profile-directory值。
方法二:
右键目标Chrome的桌面图标,点击属性可看到--profile-directory值为“Profile 2”。

代码演示
from time import sleep from selenium import webdriver options = webdriver.ChromeOptions()
# 步骤1获取到的User Data路径
options.add_argument(r'--user-data-dir=C:\Users\Admin\AppData\Local\Google\Chrome\User Data')
# 步骤2获取到的--profile-directory值
options.add_argument("--profile-directory=Profile 2")
driver = webdriver.Chrome(options=options) driver.get("https://www.baidu.com/")
sleep(3)
driver.quit()
注意:此时已实现打开目标Chrome,但当电脑已有打开的Chrome浏览器时,运行到第10行时会报错:user data directory is already in use, please specify a unique value for --user-data-dir argument, or don't use --user-data-dir

解决1:在运行脚本之前关闭所有Chrome实例。即关闭所有Chrome浏览器
解决2(推荐):复制一份“Profile 2”文件夹到自己的目录,专门用于自动化。

复制到自己的目录下:C:\Users\Admin\Desktop\AutoTest\ChromeData

修改代码
from time import sleep from selenium import webdriver options = webdriver.ChromeOptions()
# 修改路径为自己的目录
options.add_argument(r'--user-data-dir=C:\Users\Admin\Desktop\AutoTest\ChromeData')
options.add_argument("--profile-directory=Profile 2")
driver = webdriver.Chrome(options=options) driver.get("https://www.baidu.com/")
sleep(3)
driver.quit()
至此,解决了多开Chrome时运行脚本报错的问题~
selenium打开指定Chrome账号的更多相关文章
- Selenium及Headless Chrome抓取动态HTML页面
一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Sel ...
- python selenium 模拟登陆百度账号
代码: from selenium import webdriver url = 'https://passport.baidu.com/v2/?login' username = 'your_use ...
- Java程序打开指定地址网页
1.今天遇到了需要手动输入http地址打开指定网页的需求,试着做一个用程序打开指定网页的功能,搜了一下,还真有一个现成的例子,稍加改造,实现自己的需求: 2.代码不多,两个文件:如下: package ...
- selenium:chromedriver与chrome版本的对应关系
转自:http://blog.csdn.NET/huilan_same/article/details/51896672 再使用selenium打开chrome浏览器的时候,需要用chromedriv ...
- selenium 定制启动chrome的参数
selenium 定制启动chrome的参数 设置代理. 禁止图片加载 修改ua https://blog.csdn.net/vinson0526/article/details/51850929 1 ...
- 获取打开指定Action的所有应用包名
获取打开指定功能的所有应用:发消息,分享等等. 如打开网页,下面代码即可查看所有的浏览器 //查找所有浏览器 private void queryPackage() { PackageManager ...
- 浅入浅出EmguCv(三)EmguCv打开指定视频
打开视频的思路跟打开图片的思路是一样的,只不过视频是由一帧帧图片组成,因此,打开视频的处理程序有一个连续的获取图片并逐帧显示的处理过程.GUI同<浅入浅出EmguCv(二)EmguCv打开指定图 ...
- 浅入浅出EmguCv(二)EmguCv打开指定图片
从这篇文章开始,会介绍一些通过EmguCv实现的一些简单的功能,这个内容的更新会跟我学习OpenCv的进度有关,最近在看一本关于OpenCv的书——<学习OpenCv>,主要例子还是通过这 ...
- [转]C#中调用资源管理器(Explorer.exe)打开指定文件夹 + 并选中指定文件 + 调用(系统默认的播放类)软件(如WMP)打开(播放歌曲等)文件
原文:http://www.crifan.com/csharp_call_explorer_to_open_destinate_folder_and_select_specific_file/ C#中 ...
随机推荐
- Python入门随记(1)
1.IDE Interactive Development Enironment,交互式开发环境 2.AI artificial intelligence 3.Python是一种格式严明(严格缩进)的 ...
- Java案例——冒泡排序
排序:将一组数据按照固定的规则进行排列 冒泡排序:一种排序方式,对将要排序的相邻的数据进行两两比较,将较大的放在后面,依次对所有的数据进行操作,直到所有的数据按要求完成排序 冒泡排序原理: 1.如果有 ...
- nginx配置只允许某个IP或某些IP进行访问
server{ listen 80; listen 443 ssl; server_name ehall.jerry.plus; ssl_certificate "****.crt" ...
- STM32注意事项
1. STM32 USB可配置在全速模式,时钟频率需为48MHz,且精度较高,无法使用芯片内部高速时钟实现(内部时钟精度一般为1%,但USB时钟需要0.1%) 2. 使用重映射功能时,需注意开启AFI ...
- 12.11 Exception
12.11exception 1.类别 检查性异常:用户错误或者问题引起的异常,此类异常程序员无法预见.例如:打开一个不存在的文件,用户输入错误(在只能输数字的地方输入汉字)...... 运行时异常: ...
- C++ TCHAR* 与char* 互转
C++ TCHAR* 与char* 互转 在MSDN中有这么一段: Note: The ANSI code pages can be different on different computers, ...
- maven在idea中的一点使用技巧
maven在idea中的一点使用技巧 idea已经支持将参数的意思也展示出来,确实很方便. -U是强制拉取,因为如果拉取某个jar包,失败了,那么在一段时间内,idea不会重试,除非指定-U. -X呢 ...
- vue开发chrome扩展,数据通过storage对象获取
开发chrome插件时遇到一个问题,那就是单文件组件的data数据需要从chrome提供的storage对象中获取,但是 chrome.storage.sync.get 方法是异步获取数据的,需要通过 ...
- 转载:平衡二叉树(AVL Tree)
平衡二叉树(AVL Tree) 转载至:https://www.cnblogs.com/jielongAI/p/9565776.html 在学习算法的过程中,二叉平衡树是一定会碰到的,这篇博文尽可能简 ...
- 用一个文件,实现迷你 Web 框架
当下网络就如同空气一样在我们的周围,它以无数种方式改变着我们的生活,但要说网络的核心技术变化甚微. 随着开源文化的蓬勃发展,诞生了诸多优秀的开源 Web 框架,让我们的开发变得轻松.但同时也让我们不敢 ...