加载cookiese,更新cookies,防止一直登录的烦人情况。使用已经安装的插件,更好的操作。

本文介绍了如何在Selenium自动化测试中,使用Edge浏览器加载已安装的插件并使其在WebDriver重启后仍保持安装状态。通过查找扩展路径、复制扩展文件、启动WebDriver加载扩展以及创建用户配置文件等步骤,实现插件的自动加载和持久化。
摘要由CSDN通过智能技术生成

原因:

测试时,老是登录,真是麻烦。所有以必要让他自己登录。

原理:特定元素出现后,保存cookies,注意名称要个性化。当然登录后要及时更新。

以下代码测试通过,多余代码忽略。因为我还要搞其他的。

import tkinter as tk
import random
from tkinter import filedialog
from datetime import datetime
import pyperclip
import os
import re
from tkinter import messagebox

from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.common.exceptions import NoSuchElementException,ElementClickInterceptedException
from selenium.common.exceptions import WebDriverException

import json
import time
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

import configparser


def js_condition(driver):
    """自定义等待条件函数,检查JavaScript返回值"""
    return driver.execute_script("return document.readyState") == "complete"


def open_edge_browser(url):
    global driver
    # 设置Edge选项
    edge_options = Options()
    edge_options.use_chromium = True
    # 向Edge浏览器传递启动参数
    edge_options.add_argument('--disable-extensions')  # 禁用浏览器扩展
    edge_options.add_argument('--disable-gpu')  # 禁用GPU硬件加速

    # 初始化Edge浏览器驱动(假设msedgedriver.exe已添加到PATH)
    driver = webdriver.Edge(options=edge_options)

    # 定义 cookies 文件路径
    cookies_file_path = 'aigccookies.txt'

    # 检查 cookies 文件是否存在
    if os.path.exists(cookies_file_path):
        # 如果存在,读取文件内容
        with open(cookies_file_path, 'rb') as file:
            cookies = file.read()



        # 将 cookies 加载到 WebDriver 中
        driver.execute_cdp_cmd("Network.setCookies", {
            "cookies": eval(cookies)  # 使用 eval 解析 cookies 数据
        })

        # 接下来可以访问需要登录的页面,如果 cookies 有效,将实现免登录
        driver.get(url)  # 替换为实际的目标网页 URL
        driver.maximize_window()
        # 保存 cookies
        cookies = driver.get_cookies()
        with open('aigccookies.txt', 'w') as file:
            file.write(str(cookies))
            print("aigccookies已更新")
        return driver
    else:
        print("Cookies 文件不存在,无法实现免登录。")
        try:
            # 打开网页
            driver.get(url)
            # 设置显式等待,等待页面加载完成
            # 这里使用了多个条件来确保页面加载完成:
            # 1. `EC.presence_of_element_located((By.TAG_NAME, 'body'))` 确保body标签存在,基本的HTML结构已加载。
            # 2. `EC.visibility_of_element_located((By.ID, 'someId'))` 可以替换为页面上某个关键元素的ID,确保该元素不仅加载而且可见。
            # 3. `EC.javascript_returned_value(True)` 可以用来执行JavaScript检查`document.readyState`是否为"complete
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PyAIGCMaster

1毛钱也是爱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值