Selenium3 Python WebDriver API源码探析(18)FireFox WebDriver实现,安装扩展

Selenium实战:从零搭建微博热搜爬虫,破解动态渲染与反爬机制 在数据采集领域,动态网页因其内容依赖JavaScript实时渲染,给传统爬虫带来了挑战。其核心原理在于浏览器执行JS代码后生成完整的DOM树,而静态请求无法获取这部分动态内容。为解决此问题,Selenium等浏览器自动化工具应运而生,它们通过驱动真实浏览器,完整执行页面逻辑,从而获取渲染后的数据,在舆情监控、市场分析等场景中价值显著。本文聚焦于微博热搜这一典型动态页面,详细阐述了如何利用Selenium模拟真实用户行为,结合显式等待、元素定位等关键技术,并针对请求头检测、行为模式识别等反爬机制,给出了伪装U 阅读详情

根据《Selenium3 Python WebDriver API源码探析(2):Selenium包目录结构、模块功能概述》可知,selenium\webdriver\remote\webdriver.py模块中的WebDriver类定义了通用WebDriver的基本特性,各种浏览器根据自身特性继承WebDriver类再做进一步实现。selenium\webdriver\firefox\webdriver.py模块中的WebDriver类实现了FireFox WebDriver,并通过selenium\webdriver\__init__.py向外暴露(from .firefox.webdriver import WebDriver as Firefox)。所以一般使用如下方式初始化FireFox WebDriver。

from selenium import webdriver
driver = webdriver.Firefox()

remote WebDriver

remote WebDriver的类签名为:
Class WebDriver(command_executor='http://127.0.0.1:4444/wd/hub', desired_capabilities=None, browser_profile=None, proxy=None, keep_alive=False, file_detector=None, options=None)
构造方法参数为:

  • command_executor :字符串或remote_connection.RemoteConnection 对象。默认为'http://127.0.0.1:4444/wd/hub'。
  • desired_capabilities - 新建会话时的capabilities。
  • browser_profile - selenium.webdriver.firefox.firefox_profile.FirefoxProfile对象。自定义配置文件。只用于Firefox。
  • proxy - selenium.webdriver.common.proxy.Proxy对象。代理设置。
  • keep_alive - 布尔值。是否设置长连接。默认值为False。
  • file_detector - 自定义文件处理器。默认值为None,使用LocalFileDetector()。
  • options - Options类实例。浏览器选项设置。

属性为:

  • session_id:会话ID。
  • capabilities:浏览器返回的capabilities集合。
  • command_executor :remote_connection.RemoteConnection 对象。命令的执行对象。
  • error_handler:ErrorHandler 对象。错误处理器。

Firefox WebDriver

Firefox WebDriver的类签名为:
Class WebDriver(firefox_profile=None, firefox_binary=None, timeout=30, capabilities=None, proxy=None, executable_path="geckodriver", options=None, service_log_path="geckodriver.log", firefox_options=None, service_args=None, desired_capabilities=None, log_path=None, keep_alive=True)

Firefox WebDriver构造函数的参数比较复杂,有多个参数功能重复,有一些参数即将废弃,最终这些参数汇集构造成为 capabilities 字典,传递给浏览器。
对于某些参数,如 firefox_profile andoptions.profile 是互斥的,他们的优先级由特定场景决定。capabilities是最不具体的关键字参数,其次是options、firefox_binary和firefox_profile。具体来讲,如果同时设置 firefox_profile和options.profile,此时应用的参数为firefox_profile,options.profile将被忽略。类似地capabilities["moz:firefoxOptions"]["profile"] 的优先级低于options.profile。

构造方法参数为:

  • firefox_profile:FirefoxProfile 对象或字符串。如果没有定义,将在操作系统的临时目录中生成一个新的自定义配置文件。
  • firefox_binary: FirefoxBinary 或Firefox二进制文件的路径。如果没有定义,则使用操作系统的Firefox的默认安装位置。
  • timeout: 启动Firefox的超时时间。
  • capabilities: desired capabilities字典,即将废弃。
  • proxy:代理设置。
  • executable_path: geckodriver的路径,默认从系统变量path中获取。
  • options: options.Options实例。
  • service_log_path: 日志存放路径。
  • firefox_options:等同options,即将废弃。
  • service_args:传递给driver服务的参数列表。
  • desired_capabilities:等同于capabilities。
  • log_path: 等同service_log_path,即将废弃。
  • keep_alive:是否设置长连接。

精简后的类签名为:
Class WebDriver(firefox_profile=None, firefox_binary=None, timeout=30, executable_path="geckodriver", options=None, service_log_path="geckodriver.log", service_args=None, desired_capabilities=None, keep_alive=True)

扩展安装、卸载方法

Firefox WebDriver类实现了扩展安装、卸载方法。

安装扩展

方法签名为:def install_addon(self, path, temporary=None):
参数path为扩展的绝对路径。
返回值为扩展的id,便于卸载时使用。
案例:

import selenium.webdriver as webdriver

driver = webdriver.Firefox()

addon_id = driver.install_addon(r"\path\d.xpi")
print(addon_id)

输出为:{32af1358-428a-446d-873e-5f8eb5f2a72e} 即d.xpi扩展的id。
在这里插入图片描述

卸载扩展

方法签名为:def uninstall_addon(self, identifier):
参数identifier即安装扩展时返回的扩展id。

Automa浏览器自动化安装与配置全指南 浏览器自动化是指让网页自动执行点击、输入、抓取等操作的技术,其核心原理依赖于浏览器原生API(如Chrome DevTools Protocol)而非模拟用户行为。Automa作为轻量级可视化工作流引擎,通过拖拽模块实现零代码自动化,显著降低使用门槛,提升业务流程稳定性与可维护性。相比Selenium等编程方案,它更适合运营、产品、客服等非技术角色快速落地重复任务,典型应用场景包括电商比价、数据采集、表单填写与日报生成。本文围绕Automa的底层机制、Chrome扩展安装规范、权限配置及防崩溃实践,系统梳理 阅读详情

相关推荐

browser39:解决39个痛点的Python浏览器自动化框架

浏览器自动化是软件测试、数据采集和RPA流程自动化的核心技术,它通过程序控制浏览器模拟用户操作。其原理在于通过WebDriver协议与浏览器内核通信,执行点击、输入、导航等指令。这项技术的核心价值在于将重复、繁琐的人工网页操作转化为高效、可复现的自动化流程,广泛应用于电商数据监控、表单自动填写、Web应用测试等场景。然而,实践中开发者常面临环境配置复杂、元素定位脆弱、异步加载难以处理、多窗口管理混乱以及反爬检测等具体挑战。针对这些高频痛点,browser39框架应运而生,它通过封装智能等待、稳健交互、会话管

weixin_30915275的博客 422

Selenium WebDriver 自动化测试与爬虫实战:从环境配置到高级技巧

自动化测试和Web数据抓取是现代软件工程与数据分析中的关键技术,旨在通过程序模拟用户操作,提升效率与准确性。其核心原理在于通过标准协议(如W3C WebDriver)建立客户端脚本与真实浏览器内核之间的通信桥梁,从而实现对网页元素的精准定位与交互。这项技术的价值在于能够执行端到端的UI测试、稳定抓取动态网页数据,并实现重复性Web操作的自动化,广泛应用于测试开发、爬虫工程及办公自动化等场景。本文聚焦于Selenium WebDriver这一主流工具,深入解析其元素定位、等待机制等核心操作,并针对环境配置、常

weixin_33726318的博客 348

Chrome CUP:基于Gemini的浏览器原生意图自动化技术解析

浏览器自动化正从DOM驱动的脚本化控制,迈向基于用户意图的理解型交互。Computer Use Preview(CUP)作为Chrome内核级能力,融合操作系统UI自动化、端侧多模态视觉理解与Gemini Nano驱动的意图规划,实现‘说人话→看画面→做操作’闭环。其技术价值在于规避DOM脆弱性、消除Shadow DOM/动态ID等传统瓶颈,显著提升电商结算、表单填写等高频场景的执行鲁棒性。当前已通过Playwright实验性接口开放调用,适用于测试稳定性增强、RPA语义升级及AI Agent浏览器原生执行

weixin_34284188的博客 474

python+selenium+Firefox, WebDriver使用默认Firefox配置

使用系统默认Firefox 使用webdriver.firefox()时,如果参数为空, 则程序调用的是一个全新的firefox 如果想复用已经配置好的Firefox设置, 程序中可添加FirefoxProfile文件来支持 (FirefoxProfile文件目录就是mimeTypes.rdf的上级目录) def __init__(self): self.url = '+++++++++++++' profile=webdriver.FirefoxProfile("C:\Users\用户名\

xujing19920814的博客 1861

基于Matlab的MIMO通信系统仿真_Simulink实现

瑞利衰落信道中使用空时分组码的BPSK调制的BER 1、2发1收 参数设置: 双极性信号元+1和-1,每符号含1bit; 采样时间=符号时间=1s; 采用基于数据帧的仿真计算模式,每帧中有2个采样值; 仿真时间=出现100个误码后停止仿真; 随机整数种子=22; Jakes衰落模型中每个信道上的多普勒频移=0.01Hz; 输人信号功率=2W; Alamouti码:两根发送天线,一根接收天线(分集阶= 2); 平均信道信噪比= 18dB; 仿真得出的误码率统计BER =0. 00017. 2、2发

太阳帅帅的博客 9688

VSCode插件全攻略:5分钟搞定Mermaid流程图实时预览(含常见报错解决)

本文提供了一份详细的VSCode插件实战指南,帮助开发者快速配置Mermaid流程图实时预览环境。文章涵盖核心插件选择、高效工作流搭建,并重点解决了图表渲染失败、样式异常等常见报错问题,旨在提升技术文档的编写效率与可视化质量。

rust6ferris的博客 1487

Selenium2(WebDriver)总结(一)---启动浏览器、设置profile&加载插件

本文主要记录下在使用selenium2/webdriver时启动各种浏览器的方法、以及如何加载插件、定制浏览器信息(设置profile)等 环境搭建可参考我的另一篇文章:http://www.cnblogs.com/puresoul/p/3483055.html 一、Driver下载地址:   http://docs.seleniumhq.org/download/ 二、启动firefox...

weixin_34277853的博客 857

从零上手HiAgent:构建能听懂指令的智能体框架实战指南

智能体(Agent)作为人工智能领域的重要范式,正从传统的预设流程自动化转向以目标驱动的自主规划与执行。其核心原理在于利用大语言模型(LLM)作为决策大脑,通过任务规划、工具调用与记忆机制,将模糊的自然语言指令转化为可执行的工作流。这一技术显著提升了人机协作的效率和自然度,其价值在自动化办公、数据分析与智能流程编排等场景中尤为突出。本文聚焦于HiAgent这一具体框架,深入解析其作为智能体开发平台的核心架构,涵盖规划器、执行器、工具集等关键组件,并提供从环境配置、自定义工具开发到复杂任务链构建的完整工程实践

weixin_29266007的博客 894

火狐浏览器配置webDriver

写在前面:最近学软件测试,需要用python做自动化测试,但是这个配置却不太好弄,网上搜集的方法要么年代久远,要么只教一半,确实很搞心态,所以在此记录下配置连接火狐的过程。 1.下载火狐webDriver 1.1装前准备 在下载火狐浏览器的驱动之前,先确认自己火狐浏览器的版本号。查看操作: 设置---常规---下滑找到更新---将自动更新设置为需确认,如图所示: 如果想下载其他火狐浏览器的版本,可以到下面这个链接选择需要下载的版本号: Directory Listing: /pub/fir.

習習君的博客 2万+

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3739

百度百科 X-Bk-Token 算法还原

百度百科 X-Bk-Token 算法还原

自成背后的博客 1万+

python+selenium+Firefox, WebDriver使用默认Firefox配置_webdriver

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。最后就是大家最关心的网络安全面试题板块。

2401_84418948的博客 821

【数据分析八步法】将模糊需求转化为可验证的分析问题

国内访问Huggingface官方源常遇网络问题,可通过切换国内镜像提升下载速度。三种配置方式:1)设置HF_ENDPOINT环境变量;2)在from_pretrained中直接指定镜像参数;3)修改本地Huggingface配置文件。常用镜像包括hf-mirror.com、阿里云ModelScope和清华镜像源。注意镜像同步延迟、私有模型限制,建议配合huggingface-cli工具使用,必要时取消代理设置。合理配置镜像源可显著改善Huggingface生态使用体验。

Mr数据杨 858

python浏览器怎么设置_python+selenium webdriver.firefox()方式配置浏览器设置

webdriver.firefox()爬虫需求: (其实是输入参数可获取.zip/pdf 文件,然后点击下载)——但是firefox浏览器有Bug,点击下载之后会有弹出窗口,需要你点击确定,这怎么能成,所以百度一把:得知需要修改firefox的配置文件mimeTypes.rdf——搜索栏输入:about:support 配置文件夹—》打开文件夹—》获取文件地址添加配置内容:NC:value=...

weixin_39554775的博客 642

Android OTA 更新面试题及参考答案

OTA 更新即空中下载技术(Over-the-Air Technology)更新,是一种通过无线网络对移动设备的系统软件或应用程序进行远程更新的技术手段。其原理是设备通过移动网络或 Wi-Fi 连接到服务器,服务器检测设备上可更新的软件版本,当有新的版本时,将更新包发送到设备上。设备接收后,在后台自动完成更新包的下载、安装等一系列操作,无需用户手动下载完整的系统镜像或应用安装包并通过数据线等方式进行安装。例如,当手机厂商推出新的安卓系统版本或安全补丁时,就会通过 OTA 方式推送给用户。

大模型大数据攻城狮的专栏 1630

SAP 中配置权限职责菜单并分配给用户的核心流程是:用PFCG 创建 / 维护角色(含菜单、事务码、权限)→ 生成权限参数文件 → 通过 SU01/SU10 将角色分配给用户

SAP权限配置核心流程:1)通过PFCG创建角色,配置菜单事务码及权限对象;2)生成权限参数文件;3)用SU01/SU10分配角色给用户。关键步骤包括:在PFCG中维护菜单结构、设置权限字段值、生成Profile,通过用户比较验证权限。批量分配可用SU10,特殊需求可创建复合角色或自定义权限对象。常见问题需检查权限缺失(SU53)、菜单分配及组织级别设置。流程简化为:创建角色→配置权限→分配用户→验证生效。

金牌架构师 1274

Selenium3 Python WebDriver API源码探析(19)加载FireFox用户配置文件

FireFox用户配置文件 Firefox 将用户个人信息(例如书签、密码、首选项、扩展、Cookie、证书等)保存在一系列文件中,它们被叫做用户配置文件,它们与 Firefox 的程序文件保存在不同位置。 因此,WebDriver如果能够加载已有的FireFox用户配置文件可带来很多便利! 查找用户配置文件 Firefox默认在本地路径C:\Users\<your Windows login username>\AppData\Roaming\Mozilla\Firefox\Profiles\

mighty13的专栏 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Selenium 4 API升级指南:从find_element_by_id报错到现代化代码迁移

在Web自动化测试与数据抓取领域,元素定位是核心基础操作,它直接关系到脚本的稳定性和执行效率。其原理是通过浏览器驱动与页面DOM结构进行交互,精准识别目标元素。随着Selenium框架从3.x升级到4.x版本,官方对元素定位API进行了重大重构,旨在统一接口、提升代码可维护性,这体现了自动化工程向标准化、模块化发展的技术价值。这一变化尤其影响了基于Page Object Model等设计模式构建的测试框架。在实际应用场景中,开发者常因环境版本不一致而遭遇‘WebDriver‘ object has no a

weixin_30838873的博客 418

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Selenium2+python自动化18-加载Firefox配置

前言 有小伙伴在用脚本启动浏览器时候发现原来下载的插件不见了,无法用firebug在打开的页面上继续定位页面元素,调试起来不方便 。 加载浏览器配置,需要用FirefoxProfile(profile_directory)这个类来加载, profile_directory既为浏览器配置文件的路径地址 一、遇到问题 1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,...

qq_27371025的博客 52

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

B站评论API 2024实战:Selenium + Requests 双方案爬取,规避WBI签名验证

本文详细介绍了2024年B站评论API爬取的两种实战方案:Selenium自动化与Requests直接请求,重点破解WBI签名验证机制。通过代码示例展示登录流程、请求拦截、签名生成等关键技术,提供数据处理、存储优化及可视化分析方法,并对比双方案性能差异,帮助开发者高效合规地获取B站评论数据。

weixin_30755393的博客 418

python 登陆开心网图片批量下载-selenium实现

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 from selenium import webdriver import time import re import ra

sbwyfl123的博客 331

Web自动化测试(全网最给力自动化教程)

python+selenium自动化软件测试(第2章):WebDriver API 欢迎您来阅读和练手!您将会从本章的详细讲解中,获取很大的收获!开始学习吧! 目录 2.1 操作元素基本方法2.2 常用8种元素定位(Firebug和firepath)2.3 xpath定位2.4 CSS定位2.5 SeleniumBuilder辅助定位元素2.6 操作元素(键盘和鼠标事件)2.7 多窗口、句柄(handle)2.8 定位一组元素elements2.9 iframe2.10 se

qq_45177838的博客 232

转载:web 自动化测试

转载的 : http://www.cnblogs.com/zidonghua/p/7430083.html python+selenium自动化软件测试(第2章):WebDriver API 欢迎您来阅读和练手!您将会从本章的详细讲解中,获取很大的收获!开始学习吧! 目录 2.1 操作元素基本方法 2.2 常用8种元素定位(Firebug和firepath) ...

weixin_30508241的博客 1567

Browser Use:事件驱动的AI浏览器Agent框架,自然语言驱动自动化

浏览器自动化是现代软件开发中的重要技术概念,通过编程方式模拟用户操作实现网页交互。其核心原理是基于事件驱动架构,将自然语言指令转化为具体的浏览器操作序列。这种技术显著降低了自动化测试和数据采集的门槛,为开发团队提供了高效的工程实践方案。在应用场景方面,浏览器自动化广泛应用于回归测试、数据采集、业务流程自动化等领域。Browser Use框架作为事件驱动的AI浏览器Agent解决方案,通过集成大语言模型能力,实现了自然语言驱动的智能化操作,特别适合Python技术栈的快速原型开发。该框架支持RESTful A

weixin_30388677的博客 564

Python实战学习路径:从零基础到数据分析与爬虫项目

Python作为一门广泛应用于数据分析、人工智能和网络爬虫的编程语言,其核心价值在于解决实际问题。学习Python的关键在于构建‘问题-工具-解决’的反射弧,而非单纯积累语法知识。通过掌握Pandas进行数据清洗、筛选与聚合,结合Matplotlib实现数据可视化,可以高效完成数据分析工作流。同时,理解HTTP协议与网页解析技术,使用Requests和BeautifulSoup库,能够从互联网获取真实数据,为分析提供源头。本文聚焦于如何通过项目实战,将Python语法、数据分析与网络爬虫技能串联,形成一套可

weixin_30673611的博客 342
上一篇: Selenium3 Python WebDriver API源码探析(17)下拉框(select)支持
下一篇: Selenium3 Python WebDriver API源码探析(19)加载FireFox用户配置文件
mighty13
博客等级 码龄23年 728粉丝 438原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值