javascript - 如何在 Selenium (selenium-webdriver) JavaScript 中使用 Chrome 配置文件
问题描述
由于似乎没有办法使用现有的 Chrome 窗口,我如何在Selenium
打开的窗口中使用用户的 Google 帐户(以及所有设置和密码)?Selenium
似乎为自己打开窗口,但没有谷歌帐户,这是我程序的重要组成部分。
我的程序对时间非常敏感,所以它需要自动登录到它访问的网站,并且该程序将被多个用户使用。
解决方案
var webdriver = require("selenium-webdriver");
var chrome = require("selenium-webdriver/chrome");
var options = new chrome.Options();
options.addArguments("user-data-dir=C:\\Users\robert.car\\AppData\\Local\\Google\\Chrome\\User Data")
options.addArguments("profile-directory=Profile 1")
var driver = let driver = new webdriver.Builder()
.forBrowser('chrome')
.setChromeOptions(options)
.build();
user-data-dir 将 profile 视为 default ,您不必指定 . 如果它是其他东西通过 profile-directory 参数指定它
创建配置文件的步骤:
打开:地址栏中的 chrome://version
将用户 dir 文件夹完全复制到例如 c:\tmp\newdir
打开复制的用户数据(newdir)并搜索名为 Default 的文件夹。这是配置文件文件夹。
将默认文件夹重命名为“配置文件 1”
现在使用这个:
options.addArguments("user-data-dir=c:\\tmp\\newdir")
options.addArguments("profile-directory=Profile 1")
推荐阅读
- javascript - 预期 null 深度等于 [Array (1)]
- python - Django API 自定义喉咙
- powershell - 从文件夹中的所有文件夹名称中删除某些字符
- java - 使用 JsonPath 如何获取这些 json 对象的内部值
- javascript - 为什么我的图像路径不起作用?
- reactjs - 这个 useEffect() 是否不必要地昂贵?
- android - 为什么 SavedStateHandle 不保存或返回我的实时数据?
- elasticsearch - AWS Elasticsearch:使用 Python 请求进行批量插入
- javascript - 当鼠标位于某些区域时,无法从页面底部的文本中删除下划线
- django - Django 仅在 1 个 html 文件中扩展 base.html 模板