selenium-简介及环境搭建 - 日理万妓 2021-11-04 13:01 420阅读 0赞 # selenium简介及环境搭建 # ## Selenium简介 ## **1.Selenium简介及组成** selenium是一种web自动化测试工具,它可以在主流的浏览器上运行,支持的语言有java, python,javascript selenium主要有三部分组成: **Selenium IDE**:录制和回放脚本,可以模拟用户对页面的真实操作,区别于其他工具:是通过拦截http请求。 一般只把录制脚本当作一个辅助功能,因为一个UI节点的细微变化,都可能导致自动化测试工具无法识别,当测试项目项目大时,定位、更新十分困难。 其次,录制的脚本有时候人工难以理解。 **Selenium Grid**:实现在多台机器上、和异构环境中并行执行测试用例。并行执行不仅节省时间,而且可以同时在不同的浏览器、平台上运行自动化测试脚本。 **Selenium Web Driver**:针对各个浏览器而开发,通过原生浏览器支持或者扩展(Chrome webDrive、FireFox WebDriver)直接控制浏览器 **Selenium RC**(Selenium1.0):在浏览器中运行javaScript,使用浏览器内置的JavaScript来翻译和执行selense **2.Selenium特点** 支持录制和回放(Selenium IDE) 通过WebDriver,直接控制浏览器,而不是通过拦截HTTP请求,实现真正模仿了用户的操作;同时使用WebDriver能够灵活的获取页面元素(WebDriver),并且提供执行JS的接口 能够分布式运行在不同机器和异构环境中(不同浏览器) **3. Selenium的内部运行机制?如何能够跨浏览器使用?——WebDriver原理(&RC原理)** **1)RC原理** **在Selenium1.0中**,是通过Selenium RC服务器作为代理服务器去访问应用从而达到测试的目的。 **Selenium RC分为三个部分**,Launcher、HttpProxy、Core。 Launcher用于启动浏览器,把Selenium Core加载到浏览器中,并且把浏览器的代理设置为Selenium Server的Http Proxy。 Core是一堆JavaScript的集合,所以本质相当于运行这些JavaScript函数来实现对Html页面的操作。——这也是为什么可以运行在几乎所有主流的浏览器上。 然而直接运行JavaScript会有极大的安全漏洞,所以会受到“同源限制”,在这个基础上,**Selenium2.0**引入了WebDriver。 **2)Web Driver原理** webDriver是按照client/server模式设计的。client是我们的测试脚本,发送请求;server就是打开的浏览器,用来接收client的请求并作出响应。 **具体的工作流程:** webDriver打开浏览器并绑定到指定端口。启动的浏览器作为远程服务器remote server client通过CommandExecuter发送http请求给远程服务器的侦听端口(the wire protocal) 远程服务器根据原生的浏览器组件来转化为浏览器的本地(native)调用 所以**web Driver用到的协议**: 打开浏览器时:HTTP协议 client端发送http请求到远程服务器的侦听端口:the wire protocol 其中: **有线协议**:指的是从点到点获取数据的方式,是应用层的协议。 **HTTP协议**:是用于从服务器传输超文本标记语言HTML到客户端的通信协议。是一个应用层协议,由请求/响应构成,是一个标准的客户/服务器模式。是一个无状态的协议。 (无状态:对事务没有记忆能力,不会保存这次传输的信息——节约内存) ## 环境搭建 ## 1.安装java运行环境 ![1479277-20190727154925198-1094208110.png][] 2.下载selenium IDE : [https://www.seleniumhq.org/download/][https_www.seleniumhq.org_download] 下载chromedriver.exe : [http://selenium-release.storage.googleapis.com/index.html][http_selenium-release.storage.googleapis.com_index.html] ![1479277-20190727155400241-1441971798.png][] 3.新建一个java项目,在其下面创建一个libs的文件夹,将selenium-java.zip中的jar包都拷贝进去 ![1479277-20190727161415027-564490900.png][] 4.鼠标右击java项目->Build Path -> Config build path -> java build Path -> Libraries -> Add JARs ![1479277-20190727160804456-1496251811.png][] 如下所示,添加jar包成功 ![1479277-20190727160944514-345277554.png][] 6.编写代码启动Chrome浏览器 package com.java.sele; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class Test { public static void main(String[] args) { WebDriver driver; //设置浏览器驱动环境变量 System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\ChromeCore\\chromedriver.exe"); driver = new ChromeDriver(); driver.get("http://www.baidu.com"); } } 注意: chromedriver.exe与Chrome浏览器的版本要对应,否则代码会报错 参考资料:[《基于Selenium 2的自动化测试》][Selenium 2] 参考资料:[面试准备——(三)Selenium(1)基础问题及自动化测试][Selenium_1] 转载于:https://www.cnblogs.com/marton/p/11233994.html [1479277-20190727154925198-1094208110.png]: /images/20211104/cdbb218436b64368ad6bbc42ea5ec666.png [https_www.seleniumhq.org_download]: https://www.seleniumhq.org/download/ [http_selenium-release.storage.googleapis.com_index.html]: http://selenium-release.storage.googleapis.com/index.html [1479277-20190727155400241-1441971798.png]: /images/20211104/40df7bfcbfd64a1c850264fd4c60354b.png [1479277-20190727161415027-564490900.png]: /images/20211104/f47245292e6e4d6e92206cd5a4a60784.png [1479277-20190727160804456-1496251811.png]: /images/20211104/891f0e531d6a43acac43cdb1f315d008.png [1479277-20190727160944514-345277554.png]: /images/20211104/d669c046016f49588bda14d2f8b7d417.png [Selenium 2]: https://book.douban.com/subject/25957237/ [Selenium_1]: https://www.cnblogs.com/lesleysbw/p/6413880.html
还没有评论,来说两句吧...