javascript - 如何在 Selenium 的会话中正确添加 Cookie?(使用节点 JS)
问题描述
我已登录 Google 并将会话的 cookie 存储在 JSON 文件中。
我正在尝试创建一个 Selenium 会话并从这些 cookie 中恢复,以便我可以在这个新会话上登录到 Google。
使用 Puppeteer 时,我成功地恢复了我的会话,这段代码可以恢复我的会话:
const page = await driver.newPage()
try {
await page.goto("https://google.com")
//driver.manage().timeouts().pageLoadTimeOut(30,
TimeUnit.SECONDS)
}
catch (err) {
return console.log("ERROR WITH PROXY: " + err.message)
}
await page.setCookie(...cookies)
await page.reload()
await page.goto("https://google.com")
但是,当我尝试在 Selenium 中执行相同操作时,我没有收到任何错误,但在添加 cookie 并重新加载页面后我的会话没有恢复。代码如下:
var data = fs.readFileSync("Accounts.json")
var json = JSON.parse(data)
var options = new chrome.Options()
var cookiesProxies = GetAccount(json, account)
var arguments = SetOptions(cookiesProxies.proxy)
var cookies = cookiesProxies.cookies
options.addArguments(arguments)
var driver = new webdriver.Builder()
.withCapabilities(options)
.forBrowser("chrome")
.build()
await driver.get("https://google.com")
await driver.manage().addCookie(...cookies)
await driver.navigate().refresh()
我什至尝试将所有单独的 cookie 字典传递给该函数,但它仍然不起作用。
有任何想法吗?
解决方案
推荐阅读
- javascript - 如何创建单词进出动画
- mysql - MariaDB 拒绝 LOCALHOST 连接
- c++ - 创建线程时出现 C++ 错误,静态断言失败:转换为右值后,std::thread 参数必须是可调用的
- sql - 将 Bigquery 行内容拆分为新的单独列
- java - 如何让我的代码输出更多小数位
- r - 如何从具有特定条件的数据框中找到最大值?
- sql - 从postgresql中的三个表中获取数据
- c# - 如何在 C# 中为用户输入正确使用带有 null int 值的 while 循环
- java - 如何在 Java 中将输入(字符串)转换为日期?
- java - 使用 selenium webdriver 将不同语言的网页转换为英语时面临的问题