最新要闻
- 男生能穿芭蕾舞练功服吗_男生能穿女生芭蕾练功服吗
- 3699元 一加Ace 2原神定制礼盒下周首销:预售时被抢光 线下人山人海-天天视点
- 女子喝药一周发现成分是蟑螂 网友科普:中成药、效果很好 环球新资讯
- 2023年第一条!贵南高铁联调联试 贵州省首次时速350公里-环球资讯
- 女子酒后当街撕扯男子上衣,警方:属交通事故,已转交警处理|焦点日报
- 每日热闻!如何干燥落叶以保持鲜艳的颜色_女孩成人礼父母送什么礼物好呢
- 会计专业特长岗位_会计专业特长_每日消息
- 根治续航焦虑!比亚迪腾势N7续航里程出炉:最远能跑702km
- 三体原声黑胶来了:限量1500份 带独立编码|全球即时
- 淄博鸭货店小哥回应因帅气走红:以为是自己鸭货做的好吃 天天播资讯
- 詹姆斯:我认为我会在攻防两端表现更好,我们要保护主场-天天看点
- 皮耶罗:尤文有些锋无力,不过还好有什琴斯尼 全球观点
- 瑞幸罚员工抄写差评100遍违法吗?网友吵翻|全球实时
- 极速下载!百度网盘超级会员12个月SVIP年卡直减100元:198元好价 焦点资讯
- 天天播报:上海车展已禁止车企送冰淇淋 主办方:属实
- 《孝庄秘史》被曝抄袭作家朴月小说 网友纷纷惊叹:你觉得可惜吗?-焦点精选
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【世界新视野】selenium 4(python)快速入门-1 简介
Selenium历史
Selenium为浏览器自动化提供了先进的功能,从业者通常用它来实现网络应用的端到端测试。Selenium由三个核心组件组成: WebDriver, Grid, 和 IDE。
Jason Huggins和Paul Hammant于2004年在Thoughtworks工作时创建了Selenium。他们选择了 "Selenium "这个名字作为与惠普公司开发的现有测试框架Mercury的对应物。这个名字很有意义,因为化学物质硒以减少汞的毒性而闻名。
(资料图片)
最初版本的Selenium(今天被称为Selenium Core)是一个JavaScript库,在网络应用中模拟用户操作。Selenium Core解释Selenese命令来实现任务。这些命令被编码为由三部分组成的HTML表格:命令(在网络浏览器中执行的动作,如打开URL或点击链接)、目标(识别网络元素的定位器,如特定组件的属性)和值(可选数据,如输入到网络表格字段中的文本)。
Huggins和Hammant在Selenium Remote Control(RC)的新项目中给Selenium Core增加了脚本层。Selenium RC遵循C-S架构。客户端使用一种绑定语言(如Python或JavaScript)通过HTTP向Selenium RC服务器的中间代理发送Selenese命令。该服务器按需启动网络浏览器,将Selenium Core库注入网站,并将客户的请求代理给Selenium Core。此外,Selenium RC服务器将目标网站掩盖在与注入的Selenium Core库相同的本地URL上,以避免同源策略问题。这种方法在当时是改变了浏览器自动化的游戏规则,但它有很大的局限性。首先,由于JavaScript是支持自动化的底层技术,有些操作是不允许的,因为JavaScript不允许--例如,上传和下载文件或处理弹出式窗口和对话框。此外Selenium RC引入的开销也影响性能。
与此同时,Simon Stewart在2007年创建了WebDriver项目。WebDriver和Selenium RC从功能的角度来看是相当的,也就是说,这两个项目都允许程序员使用编程语言来模拟用户。然而,WebDriver使用每个浏览器的原生支持来进行自动化,因此,其能力和性能远远优于RC。2009年,Jason Huggins和Simon Stewart在谷歌测试自动化会议上会面后,他们决定将Selenium和WebDriver合并为一个项目。这个新项目被称为Selenium WebDriver或Selenium 2。这个新项目使用基于HTTP的通信协议,结合浏览器上的本地自动化支持。这种方法仍然是Selenium 3(2016年发布)和Selenium 4(2021年发布)的基础。现在我们把Selenium RC和Core称为 "Selenium 1",而且不鼓励使用它,而是使用Selenium WebDriver。
Selenium WebDriver
Selenium WebDriver是自动控制浏览器的库。它提供了不同语言绑定的跨平台的API。Selenium WebDriver支持的官方编程语言有Python、Java、JavaScript、Ruby和C#。Selenium WebDriver使用每个浏览器实现的本地支持来执行自动化过程。我们需要在使用Selenium WebDriver API的脚本和浏览器之安装驱动。
驱动程序(如chromedriver、geckodriver等)是依赖于平台的二进制文件,接收来自WebDriver脚本的命令,并将其翻译成一些浏览器特定的语言。在Selenium WebDriver的第一个版本中(即在Selenium 2中),这些命令(也被称为Selenium协议)是通过HTTP的JSON消息(所谓的 JSON Wire Protocol)。如今,这种通信(仍然是通过HTTP的JSON)遵循W3C WebDriver的标准规范。从Selenium 4开始,该规范是首选的Selenium协议。
Chrome浏览器遵循DevTools协议。DevTools是一套用于基于Blink渲染引擎的浏览器的开发者工具,如Chrome、Chromium、Edge或Opera。DevTools协议基于JSON-RPC消息,可以对这些浏览器进行检查、调试和分析。在Firefox中,原生自动化支持使用Marionette协议。Marionette是基于JSON的远程协议,允许检测和控制基于Gecko引擎的网络浏览器(如Firefox)。
Selenium WebDriver允许像用户一样控制网络浏览器,但要以编程方式进行。为此,Selenium WebDriver的API提供了各种各样的功能,可以浏览网页,与网页元素互动,或者模拟用户操作,以及其他许多功能。目标应用是基于网络的,如静态网站、动态网络应用、单页应用(SPA)、具有网络界面的复杂企业系统等。
Selenium Grid
Selenium家族的第二个项目是Selenium Grid。Philippe Hanrigou在2008年开始开发这个项目。Selenium Grid是一组联网的主机,为Selenium WebDriver提供浏览器基础设施。这个基础结构使Selenium WebDriver脚本能够在多个操作系统的不同性质(类型和版本)的远程浏览器中(并行)执行。
网格的中心入口是Hub(也被称为Selenium服务器)。这个服务器端的组件保持对节点的跟踪,并代理来自Selenium脚本的请求。和Selenium WebDriver一样,W3C WebDriver规范是这些脚本和Hub之间通信的标准协议。Selenium 4提供了完全分布式的Selenium Grid。这种架构实现了先进的负载平衡机制,以避免任何组件过载。
Selenium IDE
Shinya Kasatani在2006年创建了这个项目。Selenium IDE是记录和回放(R&P)自动化技术的工具。首先,在Selenium IDE中,记录部分捕获用户与浏览器的互动,将这些动作编码为Selenium命令。第二,我们使用生成的Selenium脚本来自动执行浏览器会话(回放)。
这个早期版本的Selenium IDE是一个Firefox插件,嵌入了Selenium Core来记录、编辑和播放Selenium脚本。这些早期版本是XPI模块(即用于创建Mozilla扩展的技术)。从55版(2017年发布)开始,火狐浏览器将对附加组件的支持迁移到了W3C浏览器扩展规范。因此,Selenium IDE被停用了,有一段时间无法使用它。Selenium团队按照浏览器扩展的建议重写了Selenium IDE,以解决这个问题。得益于此,我们现在可以在多个浏览器中使用Selenium IDE,如Chrome、Edge和Firefox。
使用这个GUI,用户可以记录与浏览器的交互,编辑和执行生成的脚本。Selenium IDE将每个交互编码为不同的部分:命令(即在浏览器中执行的动作)、目标(即网络元素的定位器)和值(即处理的数据)。当然,我们也可以包括对命令的描述。Selenium IDE基于Electron。Electron是基于Chromium和Node.js的开源框架,允许桌面应用开发。
Selenium 生态系统
- API
Selenium项目为Selenium WebDriver维护着各种语言绑定:Python、Java、JavaScript、Ruby和C#。
驱动
定位器工具
Selenium WebDriver API提供了不同的方法来定位Web元素(见第三章):通过属性(id、name或class),通过链接文本(完整或部分),通过标签名称,通过CSS(层叠样式表)选择器,或通过XML路径语言(XPath)。特定的工具可以帮助识别和生成这些定位器。
- 框架
python中有不少库对selenium进行了扩展,以下是一部分
https://github.com/mherrmann/selenium-python-heliumhttps://github.com/seleniumbase/SeleniumBasehttps://github.com/cobrateam/splinter
- 浏览器基础设施
我们可以用Selenium WebDriver来控制安装在运行WebDriver脚本的机器上的本地浏览器。同时,Selenium WebDriver可以驱动远程网络浏览器(即在其他主机上执行的浏览器)。在这种情况下,我们可以使用Selenium Grid来支持远程浏览器的基础设施。尽管如此,这种基础设施在创建和维护方面可能具有挑战性。
另外,我们也可以使用云提供商,将支持浏览器基础设施的责任外包出去。在Selenium生态系统中,云提供商是为自动测试提供管理服务的公司或产品。这些公司通常提供网络和移动测试的商业解决方案。云提供商的用户要求按需提供不同类型、版本和操作系统的浏览器。此外,这些供应商通常提供额外的服务,以缓解测试和监测活动,如访问会话记录或分析能力,仅举几例。现在与Selenium最相关的一些云供应商是Sauce Labs、BrowserStack、LambdaTest、CrossBrowserTesting、Moon Cloud、TestingBot、Perfecto或Testinium。
另一个我们可以用来支持Selenium的浏览器基础设施的解决方案是Docker。Docker是一种开源软件技术,允许用户将应用程序打包并作为轻量级、可移植的容器运行。Docker平台有两个主要组成部分:Docker引擎:用于创建和运行容器的工具,以及Docker Hub:用于分发Docker镜像的云服务。在Selenium领域,我们可以使用Docker来打包和执行容器化浏览器。表1-6列出了在Selenium生态系统中使用Docker的相关项目的摘要。
- 社区
由于其协作的性质,软件开发需要许多参与者的组织和互动。在开放源码领域,我们可以通过社区的相关性来衡量一个项目的成功。Selenium得到了全世界许多不同参与者的大型社区的支持。
关键词:
-
【世界新视野】selenium 4(python)快速入门-1 简介
Selenium历史Selenium为浏览器自动化提供了先进的功能,从业者通常用它来实现网络应用的端到端测试。Seleni
来源: 【世界新视野】selenium 4(python)快速入门-1 简介
全球报道:github 小技巧
武术视频课程 即时
男生能穿芭蕾舞练功服吗_男生能穿女生芭蕾练功服吗
3699元 一加Ace 2原神定制礼盒下周首销:预售时被抢光 线下人山人海-天天视点
女子喝药一周发现成分是蟑螂 网友科普:中成药、效果很好 环球新资讯
2023年第一条!贵南高铁联调联试 贵州省首次时速350公里-环球资讯
女子酒后当街撕扯男子上衣,警方:属交通事故,已转交警处理|焦点日报
Go中响应式编程库RxGo详细介绍_天天最资讯
CentOS7---基于 CentOS 7 构建 LVS-DR 群集_世界热点
世界速看:Springboot 多实例负载均衡部署
每日热闻!如何干燥落叶以保持鲜艳的颜色_女孩成人礼父母送什么礼物好呢
会计专业特长岗位_会计专业特长_每日消息
根治续航焦虑!比亚迪腾势N7续航里程出炉:最远能跑702km
三体原声黑胶来了:限量1500份 带独立编码|全球即时
淄博鸭货店小哥回应因帅气走红:以为是自己鸭货做的好吃 天天播资讯
天天亮点!语言录制兼容长按跟点击录制
詹姆斯:我认为我会在攻防两端表现更好,我们要保护主场-天天看点
皮耶罗:尤文有些锋无力,不过还好有什琴斯尼 全球观点
瑞幸罚员工抄写差评100遍违法吗?网友吵翻|全球实时
极速下载!百度网盘超级会员12个月SVIP年卡直减100元:198元好价 焦点资讯
天天播报:上海车展已禁止车企送冰淇淋 主办方:属实
《孝庄秘史》被曝抄袭作家朴月小说 网友纷纷惊叹:你觉得可惜吗?-焦点精选
火影忍者鼬出现的集数-火影忍者鼬出场集数
环球热点!广西壮族自治区贺州市2023-04-22 07:55发布雷电黄色预警
真我11 Pro+真机照出炉:圆形镜组、白色素皮后盖
没对比没伤害!谷歌裁员上万人:CEO年薪却高达15亿
【速看料】日本天价芒果再创记录 单颗价格超1.5万人民币!
环球播报:世界读书日丨作家清扬婉兮荐读:《在熟悉的家中向世界道别》
精彩看点:【manim动画教程】--目录(完结)
【全球独家】Rust编程语言入门之模式匹配
滚动:meta标签的一些属性描述
红高粱电视剧主题曲九儿歌词_红高粱主题曲九儿歌词 每日简讯
环球讯息:神速!第200家AITO用户中心开业 余承东:让车主用车更方便、更放心
今日热闻!不止领克08!魅族Flyme Auto生态扩圈:牵手吉利高端品牌极星
国家安全 全民守护!赵全营镇开展全民国家安全日宣传活动
LPR连续8个月“原地踏步” 二季度实体经济融资成本仍有望保持低位
电脑装机兼容性检查
4月份沪牌拍卖结果公布:中标率11%,平均成交价92412元-每日快播
世界快看点丨男子离奇失踪7天 人找到时已失温:科普危害有多大
男子坐飞机和妈祖像邻座:刚开始有点慌 被告知是幸运不用怕
离奇!印度一奶牛被火车撞飞30米砸死铁路边撒尿老人
福岛核污染水排海可能于7月开始实施:海底隧道6月底完工_今日看点
拉萨市绿色工业招商引资推介会在南京举行|当前热闻
最新消息:3239套保障性租赁住房加快建设中哈密市保障性安居工程建设迎新进展
小米AX9000的Docker能做什么
天天观焦点:《操作系统原型--xv6分析与实验》第一章:qemu启动xv6问题记录
HCIP-Datacom-Core 2.1 IS-IS基础实验
每日焦点!vue-admin-template 如何添加快捷导航(标签导航栏)
张歆艺晒和窦骁何超莲合影,被指修图太狠,袁弘穿花衬衫参加晚宴
2.8K高刷屏+天玑9000!vivo Pad2线下提前开售:2799元起 天天头条
斯嘉丽说不会再演黑寡妇了:影迷痛哭 天天新动态
焦点快看:浙江水库大坝端掉罕见一王三后白蚁巢:孕育百万级白蚁集团
樱子小姐的脚下埋着尸体08卷第一章:表与里02
文章学习:基于AVX-512指令集的同态加密算法中大整数运算性能优化与突破
最新消息:Java中常用不可变类
网传深圳二手房参考价取消:有业主连夜涨200万,降价房源比涨价多
险资配置遇压力:资金充沛 优质资产难寻|看热讯
【世界时快讯】多省都要封杀!老头乐事故可构成交通肇事罪 大爷们只能买新能源车、考驾照?
世界通讯!纯净的寓言
天天热讯:性能测试的一些专业概念
环球快消息!昂利康:4月20日召开业绩说明会,投资者参与
责任准备金评估利率或下调 监管部门指导险企储备新产品
使用 Spring Cloud Bus 在微服务之间传递消息示例
北方将现大范围雨雪局地大暴雪:局地冷到破纪录 秋裤快穿回来 全球观点
0秒吸水:亚光加厚纯棉大浴巾23.9元(单条450g)
【全球速看料】学系统集成项目管理工程师(中项)系列03_职业道德规范
【环球时快讯】德宏股份:2022年净利润1107.61万元 同比下降71.54%
【环球财经】英国4月份制造业和服务业复苏分化进一步明显
环球观察:周鸿祎发全员信 确认这类360员工不会被GPT取代!
世界快讯:精研“模考”功能
观察:罗翔在新东方当过三年老师 俞敏洪:讲课幽默风格是被新东方训练的
国内用户无缘!iOS 17将支持三方应用商店或仅限欧洲:苹果准备收费
商品日报(4月21日):负反馈担忧加重黑色系全线下跌 乙二醇逆势涨超2%
快消息!博敏电子:4月21日融券卖出10.9万股,融资融券余额4.75亿元
安徽宁国经开区新型储能项目战略合作签约,预期投资总规模达30亿元
【全球播资讯】AI教你玩游戏
微资讯!厂商疯狂备货!RTX 4060 Ti下月杀到 老黄会良心到卖2800元?
摔角动态外媒爆料蛋妞VS米兹的头号挑战者赛两分钟草草了事的原因
全球热讯:FirewallD入门手册
2023.4.21【图论】点分治|世界新视野
全球视讯!学系统集成项目管理工程师(中项)系列07_信息(文档)管理
小米辣椒的腌制方法放一年都不坏?_新消息
看到洋人吃冰激凌,这样的场景应该珍惜
今日播报!宝马MINI称两名女生不是公司员工 不会再出现:回应求原谅 你还会买吗?
世界焦点!内地票房破2亿!《灌篮高手》登顶淘宝热搜:周边被抢空
三方签约共建华侨大学国家语言服务出口基地 今日报
买到烂尾楼“钱房两空”?最高法明确优先保护购房者权益|每日资讯
世界看点:面对特斯拉掀起的价格战,有“勇士”选择应战,有“逆行者”坚持高端
电脑c盘怎么除了系统其他文删除件_怎样清理c盘除了系统之外的东西
天天快看:张小泉客服回应菜刀拍蒜断两截:比较硬的刀就容易断裂
解决信号盲区!曝小米Civi 3支持5G异网漫游:光明正大“蹭”网 当前关注
环球最资讯丨10倍提升 安卓新旗舰放弃祖传USB2.0:体验变化太明显了
网上的那些喷子 为啥一玩这类游戏就闭嘴了?-全球热点评
热门:i7处理器32GB+1TB仅2999 这款性价比神机只有巴掌大小
潍坊开展“10+”行动 助力工业经济高质量发展 天天新消息
新能源产品集结,长安加速向全球企业转型 当前快播
英国宣布制裁5名俄公民,梅德韦杰夫回应:英国是俄罗斯永远的敌人
华仁物业2022年净利636.57万元,同比减少34.7%|年报
千的组词_关于千的组词