当前位置: 首页 > news >正文

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-tabsDOM/Console/Network
Toggle模拟toggleDeviceEmulation设备尺寸/触控/UA
网络模拟--simulate-network-conditions5G/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设备仿真

相关文章:

  • 大连指令数据集的创建--数据收集与预处理_02
  • DeepSeek05-大模型WebUI
  • 【从零开始学Redis】高级篇--超全总结笔记
  • [实现Rpc] 测试 | rpc部分功能联调 | debug | 理解bind
  • 倚光科技:助力玻璃非球面的打样与小批量生产
  • 06C语言——指针
  • 算法系列之递归反转单链表
  • k8s集群内的pod连接集群外部的mysql, k8s集群内部服务如何连接集群外部mysql? 一文搞明白
  • 设计模式总结
  • JVM系列--虚拟机类加载机制
  • 从零开始设计一个完整的网站:HTML、CSS、PHP、MySQL 和 JavaScript 实战教程
  • STM32【3】芯片的底层组成概论
  • 从 Linux 服务器到前端到网关到后端业务逻辑的分析
  • 基于Springboot的小说网站【附源码】
  • 开启 DeepSeek-R1 671B 模型
  • Hbase客户端API——语句大全
  • 2.2logstash规则配置
  • Memory设计基础--DRAM 内存架构
  • (面试经典问题之原子操作篇)原子操作CAS与锁实现
  • UE5 Computer Shader学习笔记
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 女排奥运冠军宋妮娜:青少年保持身心健康才能走得更远
  • 美国失去最后的AAA主权评级,继标普、惠誉后再遭穆迪降级
  • 新闻1+1丨强对流天气频繁组团来袭,该如何更好应对?
  • 梅花奖在上海|湘剧《夫人如见》竞梅,长沙文旅来沪推广
  • 车建兴被留置:跌落的前常州首富和红星系重整迷路