selenium简介-----如何理解selenium-WebDriver

简介: 最近经常有人提问,你如何理解和看待这个selenium? 针对这一问题,官网上已经给了很明确的答复:"浏览器的自动化操作,你想干嘛就干嘛.....就这么简单!" Selenium automates browsers. That's it! What you do with that power is entirely up to you. 今天我自己也从头缕缕思路 sel


最近经常有人提问,你如何理解和看待这个selenium?

针对这一问题,官网上已经给了很明确的答复:"浏览器的自动化操作,你想干嘛就干嘛.....就这么简单!"

Selenium automates browsers. That's it! What you do with that power is entirely up to you.


今天我自己也从头缕缕思路大笑


selenium的projects包含如下几个方面:

1.Selenium IDE 、 2.Selenium Remote Control 、 3.Selenium Grid 、4.Selenium WebDriver

1. Selenium IDE作为Firefox上的一个插件,提供录制功能,个人观点,如果能手写代码,就不要用这个东西。

2. Selenium Remote Control是一个客户端/服务器系统,可以在本地或在其他电脑上控制Web浏览器使用几乎任何编程语言和测试框架

3. Selenium Grid 可以远程的控制到并在多个服务器上同时运行测试

4. Selenium WebDriver可以在本地或远程计算机上的驱动浏览器


简单的了解了selenium之后,看看到底selenium哪里适合你?

1. 如果你想做一个强健的、基于浏览器的回归测试

2.多环境下分发和扩展可运行的脚本

这时候就可以选择selenium webdriver, 你可以使用多种脚本语言来驱动浏览器,目前,Selenium WebDriver 已经正式弃用Selenium Remote Control,而Selenium Server 内置了网格功能。


Selenium WebDriver的优点:它将Webdriver的API融入了进来,让selenium有进一步的增强。Webdriver是一套面向对象的API。相比selenium1而言,Selenium WebDriver能够进行更有效的功能测试的覆盖,比如文件上传、下载,弹出窗和对话框的问题,同时也克服了webdriverSelenium RC的单主机同源策略的限制的问题。


如果你使用Java语言来调用selenium WebDriver,那么下面这些接口一定都应该熟悉一下:

AndroidDriver,ChromeDriver,EventFiringWebDriver,FirefoxDriver,HtmlUnitDriver,InternetExplorerDriver,PhantomJSDriver,RemoteWebDriver,SafariDriver

最常用的就应该是FirefoxDriver,扩展一下就应该是InternetExploreDriver和ChromeDriver和SafairyDriver.

如果你想进行一个扩展EventFiringWebDriver也是必不可少的。


吹吹的说起来

selenium WebDriver不过是一个自动化测试工具罢了,优点就是开源易用,支持多种语言,多种浏览器,对于selenium WebDriver的使用来说,无非是在了解其基本操作的API之后,将业务逻辑和功能测试执行流程转换为计算机可读的代码,来代替我们进行复杂重复的人工测试。我们之所以使用它,无非是它能够帮助我们完成任务,达到实际的工作目标。这是从使用者或者说一个程序员的角度来讲,只要熟读API,能够准确的分析页面的DOM,遇到不同的问题,都能想出实际的解决方案,我觉得这作为一个自动化工程师已经很优秀了。如果说这时候你非要做一个平台,能够实现各种功能,要有良好的架构,良好的延展性,稳定性,叫什么软件测试架构师在做的事情,然后非要把那些手动测试的人也拉入到自动化的team中来,然后人家不想学你这个自动化,因为没有编码基础,学起来很费劲,这时候你就说要做一个万能的平台,不需要手动测试去学写代码也能进行自动化测试。。。等等一丢丢的理由吧。。。这时候我想提一个问题,为什么自动化测试现在这么火,但是每个公司或者说每一个team都必须要有手动测试人员呢???答案是很唯一的,因为任何人也取缔不了手动测试人员的角色,既然存在了就肯定有存在的道理。平台固然要作,个人对自动化测试平台的理解是,没有万能的平台,只有适合你自己业务需求的平台,你想用这些功能,你添加进去就好了,对于一个系统的生命周期,我不去评论,因为经验还没到那么多,但是我想说,国内外真的有多少系统能用到7年以上呢?一个系统能做到百年不倒?是不是架构师这个职位就不需要招人填补空缺了呢?或者说,只需要这些架构师整天看着程序员们写代码就可以了呢?腾讯算是国内比较大的互联网公司了,拿腾讯QQ来说,这短短10几年,QQ似乎也做了4次较大版本的改动吧,尤其是第四次的重新架构,可谓是大换血吧,平均算下来,万能的平台靠谱吗?

话说回来,无论使用哪种工具,解决问题才是关键,企业不同于学校,不管你使用了什么样的方法,你能把问题解决掉,那么你就是成功的。最最重要的是看人们给自己的定位,我就见过那种就喜欢做手动测试的人,代码框架你放那,让他配置个参数直接跑就OK了,他会觉得你这个好麻烦,搞不懂,还是我自己点点吧。所以这个东西强求不得。对于自动化工程师的职业发展,也同样看自己的规划了,你可以选择做一名精通于某一个工具或者技术的工程师,你也可以选择做一个名气十足的架构师,这完全看个人的爱好,其实再好的架构,上面的代码还是需要工程师来写的,我还是那句话,各有各的价值,没有高低之分。

一点点个人偏见!






忠 信
对朋友忠诚,对朋友信义,是最可珍藏的汗青.以信义交友,人字是大写的,情谊是纯净的;以信义交友,才能感觉到每天的太阳都那么光彩照人,才能体会到生命的真实存在.

目录
相关文章
|
16天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
32 6
|
Web App开发 人工智能 测试技术
[python作业AI毕业设计博客]selenium工具python快速入门1简介
概述 Selenium是一个开源自动化测试套件,适用于跨浏览器和平台的Web应用程序。 它是一组软件工具,每种工具都有不同的方法来支持测试自动化。 Selenium3.*的组件如下: Selenium IDE(集成开发环境 Integrated Development Environment) Selenium WebDriver Selenium Grid Selenium3.停止直接使用Selenium RC。
|
Web App开发 Java 测试技术
|
Java 测试技术 Python
Selenium2+python自动化51-unittest简介
前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,相当于是一个python版的junit。 python里面的单元测试框架除了unittest,还有一个pytest框架,这个用的比较少,后面有空再继续分享。
1326 0
|
10天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
27 2
|
11天前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
26 3
|
13天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
50 5
|
14天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
18 2
|
18天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
29 4

热门文章

最新文章