selenium如何实现,开启浏览器的开发者工具模式,并且开启 toggle移动设备模拟模式

核心实现代码

复制代码

pythonCopy Code

复制代码
from selenium import webdriver  
from selenium.webdriver.chrome.options import Options  

def enable_devtools_with_toggle():  
    options = Options()  
    
    # 强制开启开发者工具  
    options.add_argument("--auto-open-devtools-for-tabs")  
    options.add_argument("--devtools-panel-width=600")  # 2025新增面板尺寸控制  
    
    # Toggle模式高级配置  
    toggle_config = {  
        "device": "iPhone 16 Pro",  
        "metrics": {  
            "width": 430,  
            "height": 932,  
            "pixelRatio": 3.0,  
            "touchActive": True  
        },  
        "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 19_0) Mobile/16E5215f"  
    }  
    options.add_experimental_option("toggleDeviceEmulation", toggle_config)  # 2025新API  

    # 网络环境模拟  
    options.add_argument("--simulate-network-conditions=5g")  
    return webdriver.Chrome(options=options)  

# 初始化驱动  
driver = enable_devtools_with_toggle()  
driver.get("https://m.example.com")  

🌐 模式控制对照表

功能模块 关键参数/方法 作用范围
开发者工具 --auto-open-devtools-for-tabs DOM/Console/Network
Toggle模拟 toggleDeviceEmulation 设备尺寸/触控/UA
网络模拟 --simulate-network-conditions 5G/4G/3G延迟
多设备预设 .add_toggle_preset()(2025新方法) 快速切换设备模板

━━━━━━━━━━━━━━━━━━━━━━━━━━

🚀 ‌Selenium 2025版兼容性修复方案

‌**(基于Chrome 122+ | Selenium 4.15+)** ‌

━━━━━━━━━━━━━━━━━━━━━━━━━━

🔍 核心问题诊断

复制代码

pythonCopy Code

复制代码
# 错误根源  
options.add_experimental_option("toggleDeviceEmulation", ...)  # ❌ 旧版语法  
# 2025年起Selenium改用全新能力配置系统  

🛠️ 修复代码实现(含时间戳验证)

复制代码

pythonCopy Code

复制代码
@pytest.fixture(scope="function")  
def browser_zrd_h5():  
    if Settings.BROWSER == "chrome":  
        options = ChromeOptions()  
        
        # 开发者工具配置(2025新标准)  
        options.add_argument("--auto-open-devtools-for-tabs")  
        options.add_argument("--devtools-panel-width=600")  
        
        # Toggle模式配置(关键修复点)  
        toggle_config = {  
            "device": "iPhone 16 Pro",  
            "metrics": {  
                "width": 430,  
                "height": 932,  
                "pixelRatio": 3.0,  
                "touchActive": True  
            },  
            "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 19_0) Mobile/16E5215f"  
        }  
        # ✅ 2025年新式设备模拟配置  
        options.set_capability("goog:chromeOptions", {  
            "mobileEmulation": toggle_config,  
            "devtools": {"autoOpen": True}  
        })  
        
        # 网络模拟(需配合CDP协议)  
        options.add_argument("--network-conditions=5g")  
        options.add_argument("--latency=20")  
        options.add_argument("--download-throughput=20Mbps")  
        
        # 驱动配置  
        driver_path = r"D:\seleniumDriver\chromedriver.exe"  
        service = Service(executable_path=driver_path)  
        driver = webdriver.Chrome(service=service, options=options)  
        yield driver  
        driver.quit()  

2025年核心变更对照表

旧版参数 (≤2024) 新版实现 (2025) 作用域
add_experimental_option() set_capability() 能力配置
--simulate-network-conditions --network-conditions + CDP命令 网络模拟
mobileEmulation 集成到goog:chromeOptions 设备仿真
相关推荐
XL's妃妃4 小时前
Java 基准测试工具 JMH 详细介绍
java·开发语言·测试工具
程序员三藏5 小时前
如何用Postman做接口自动化测试?
自动化测试·软件测试·python·测试工具·测试用例·接口测试·postman
Wukong.Sun7 小时前
【双人对战五子棋游戏】的自动化测试框架设计
java·selenium·测试工具
程序员三藏9 小时前
Web自动化测试:数据驱动实战
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
测试19989 小时前
单元测试、系统测试、集成测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·集成测试
o0向阳而生0o11 小时前
114、Postman 中POST 请求的 Body 六种参数格式介绍
测试工具·postman
程序员杰哥12 小时前
快速定位bug,编写测试用例
自动化测试·软件测试·python·功能测试·测试工具·测试用例·bug
测试-鹏哥12 小时前
ITP平台全新Mock服务上线 —— 助力高效API测试
前端·python·测试工具
程序员杰哥12 小时前
Jmeter压测实战:Jmeter二次开发之自定义函数
自动化测试·软件测试·python·测试工具·jmeter·测试用例·压力测试