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

Web端百度离线地图3.0实战:从零搭建到私有化部署

本文详细介绍了Web端百度离线地图3.0的完整实战流程,从核心SDK本地化、功能模块下载到地图瓦片部署。通过逐步修改代码与配置,实现在无外网环境下的私有化部署,解决了内网或网络不稳定场景下的地图应用需求,并提供了关键的避坑指南。

n7o8p的博客 714

Mac用户福音:三步搞定PyMol开源版,告别许可证弹窗(附Homebrew/MacPorts安装指南)

本文为Mac用户提供三步安装PyMol开源版的详细指南,帮助科研人员告别许可证弹窗烦恼。通过Homebrew或MacPorts包管理器安装开源核心,并与商业版图形界面整合,实现无干扰的分子可视化研究体验。特别适合MacOS用户快速部署PyMol进行结构生物学分析。

weixin_28743405的博客 196

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

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

weixin_34277853的博客 857

Halcon窗体开发避坑指南:C#自定义控件实现7大图像交互功能

本文详细介绍了如何利用C#封装自定义Halcon控件,以解决原生HWindowControl功能不足的问题。通过实战代码,展示了如何实现图像按比例显示、鼠标拖动缩放、灰度值读取、图像保存、截图及图形叠加等七大核心交互功能,并重点剖析了内存管理、坐标转换等开发避坑要点,帮助开发者构建稳定可复用的机器视觉组件库。

weixin_29251131的博客 292

火狐浏览器配置webDriver

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

習習君的博客 2万+

《从0到1:CTFer成长之路》书籍配套题目-[第二章 web进阶]文件上传

[第二章 web进阶]文件上传开始行动绕过第1个限制绕过第2个限制 介绍:记录一下笔记,方便以后迅速回忆使用。 《从0到1:CTFer成长之路》书籍配套题目,来源网站:《从0到1:CTFer成长之路》 先看一下题目源码: <?php header("Content-Type:text/html; charset=utf-8"); // 每5分钟会清除一次目录下上传的文件 require_once('pclzip.lib.php'); if(!$_FILES){ echo '

weixin_46703850的博客 3411

PPT高清导出秘籍:如何轻松设置600dpi图片分辨率

本文详细解析了PPT导出图片模糊的根本原因,并提供了通过修改Windows注册表将导出分辨率从默认的96dpi提升至600dpi的完整教程。该方法能显著提升图片清晰度,满足学术出版与高质量印刷需求,文中还包含效果对比、进阶设置及常见问题解答。

a0b1c2d3的专栏 1316

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

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

2401_84418948的博客 821

4.Simulink基础建模操作——加减乘除运算

加减乘除运算

FPGA/MATLAB学习教程/源码/项目合作开发 9550

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

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

weixin_39554775的博客 642

半导体物理基础:载流子输运理论_(4).载流子浓度与费米能级

费米能级(Fermi Level)是描述半导体中电子和空穴能量分布的基准能级。在绝对零度下,费米能级以下的所有能级都被电子占据,费米能级以上的所有能级都是空的。随着温度的升高,电子会获得足够的能量跃迁到费米能级以上的能级,形成导带中的自由电子和价带中的空穴。费米能级在半导体中的位置取决于掺杂浓度和温度。对于本征半导体,费米能级位于禁带的中心;对于掺杂半导体,费米能级会偏移,具体位置取决于掺杂类型和浓度。载流子浓度(Carrier Concentration)是指半导体中自由电子和空穴的数量密度。

2401_87715305的博客 832

【网络与爬虫 44】Canvas指纹伪造技术:突破浏览器图形渲染检测的终极指南

Canvas和WebGL指纹是现代反爬虫系统中最难绕过的检测技术之一,它们通过分析浏览器图形渲染的细微差异来识别用户设备。本文将深入解析Canvas和WebGL指纹的工作原理,探讨其在反爬虫检测中的应用,并提供多种有效的伪造和绕过策略,帮助开发者理解并应对这些高级检测技术。

熵数实验室 1206

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万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

qq_27371025的博客 52

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

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、付费专栏及课程。

余额充值