每次调试网页都会打开一个新的浏览器窗口,当我想要做某些操作的时候就需要自己再去模拟登陆,太浪费时间了。那么要怎么样才能在打开网页的时候直接就是登陆状态呢?
使用下面的方法就可以直接加载登陆过后的保存在本地的信息,而且不再需要手动登陆
方式一
python
from selenium import webdriver
option = webdriver.ChromeOptions()
#添加保持登录的数据路径:安装目录一般在C:\Users\****\AppData\Local\Google\Chrome\User Data
option.add_argument(r"user-data-dir=C:\Users\Administrator\AppData\Local\Google\Chrome\User Data_Backup")
driver = webdriver.Chrome(options=option)
driver.get("https://www.csdn.net/")
driver.maximize_window()
方式二
控制现有浏览器,我们这边以Chrome浏览器为例,我们这里采用的是Chrome DevTools协议,他们为客户提供了检查和调试Chrome浏览器的便利功能。
具体步骤如下:
1、在控制台内打开Chrome浏览器的文件夹,进入chrome.exe文件路径

2、在命令行中输入命令:
python
chrome.exe --remote-debugging-port=9222 --user-data-dir="D:\seleniu_chrom"
对于-remote-debugging-port参数,这里可以自由选择一个未被占用的端口号进行指定,后续在初始化Selenium连接的时候会用到该端口号。
至于--user-data-dir标志,它用于指定创建新Chrome用户数据文件夹的路径。这样做可以确保Chrome在一个新的、独立的配置文件中启动,从而避免对您的默认配置文件造成任何干扰。

3、执行完上述命令后,会生成打开一个全新的浏览器,可以在该浏览器上面进行初始化,新的用户数据也将会存在刚刚填入--user-data-dir参数的文件夹下面。

4、在进行好浏览器初始化后,在脚本中输入下述代码进行初始化,连接已开启的浏览器
python
from selenium import webdriver
from selenium.webdriver.edge.options import Options
port=9222
chrome_options=Options()
chrome_options.add_experimental_option('debuggerAddress',f'127.0.0.1:{port}')
browser=webdriver.Edge(options=chrome_options)
browser.get('url')
#
#
#其余操作逻辑