Selenium (4) —— Selenium是什么? WebDriver是什么?做什么?(101 Tutorial)
selenium版本: v2.48.0 (Standalone Selenium Server)
selenium IDE版本: 2.9.1
firefox版本: 39.0.3
参考来源:
Understanding Selenium IDE vs Selenium RC
Selenium Tutorial: Learn Selenium WebDriver
Selenium是什么?
“Selenium”是一个项目的名字,它包括了一组工具和API:Selenium IDE,Selenium RC,Selenium WebDriver,和Selenium Grid。Selenium项目主页:seleniumhq.org
-
Selenium IDE 是一个Firefox的插件,这个插件可以方便用户录制和回放浏览器上的操作。
-
Selenium-RC 是Selenium项目的第一个工具,它可以自动化浏览器中的Web应用。这个项目已经不在更新,新的推荐替代为WebDriver。
-
Selenium WebDriver 是一个支持浏览器自动化的工具。它包括一组为不同语言提供的类库和“驱动”(drivers)可以使浏览器上的动作自动化
-
Selenium Grid 可以使我们在远程多个浏览器,多台主机上进行自动化测试
WebDriver是什么?
WebDriver为很多语言提供类库:Java,C#,Ruby,JavaScript,Python,PHP,Perl和其他语言。这样就可以使使用WebDriver的开发人员使用自己最熟悉的语言,而不需要去学习WebDriver独有的脚本语言,使用WebDriver就像在自己项目中使用一个第三方库一样。
WebDriver用“驱动”(driver)去控制不同的浏览器。目前驱动支持的浏览器包括Firefox,Chrome,Safari和IE。微软正在为Mcirosoft Edge研发新的driver。Firefox的driver是内置的,所以Firefox是多数项目进行自动化测试的首选。
WebDriver与“驱动”(driver)间用JSON协议进行通信,这种方式已经成为W3C标准。这就意味着,浏览器厂商会更愿意在生产他们自己的drivers时去满足支持WebDriver标准。即希望微软会为IE driver负责,苹果会为Safari的driver负责。
WebDriver还有一个移动驱动叫做Appium,它允许测试代码在移动设备和平板上运行。
因为WebDriver有Selenium Grid,云服务提供商可以为我们提供多种不同版本的浏览器及操作系统环境,让我们的测试在不同环境组合下运行。这种服务通常需要付费,但是与自己构建具有不同操作系统和不同浏览器的grid使用的时间和资源成本相比,还是负担得起的。
本质上Selenium是一个生态系统,我们可以进行本地桌面,本地移动设备,跨平台测试,我们不需要使用Windows,Mac或是Linux操作系统。我们可以选择自己项目团队最合适的编程语言。我们可以并行或远程执行我们的测试。所有需要做的就是学习如何使用WebDriver。
获取更多关于Selenium和自动化测试的信息可以访问课程web application testing with Selenium
WebDriver干什么?
WebDriver可是使浏览器自动化。WebDriver可以为我们打开URL与渲染出的页面进行交互:
- 新建一个浏览器实例
- 在浏览器中打开一个URL
- 点击页面上的链接
- 在字段中输入信息
- 在页面中执行JavaScript
WebDriver不是一个测试REST APIs、SOAP APIs或数据库的工具。
它是一个自动化浏览器的工具。
因为WebDriver本质上是一个库,我们可以将其与其他库一起使用,调用其他API或者对数据库进行操作。
通常WebDriver与其他库一起使用,访问数据库检查结果,使用REST库进行API调用,然后在WebDriver页面上检查结果。