当前位置: 首页 > news >正文

关于自动化测试工具selenium

目录

一、selenium简介

定义:

如何组成的:

 从selenium的组件来看我们能够提取以下几个selenium特点

二、selenium的简单实操(主要运用的是webdriver组件) 

1、下载所需驱动包(必须与谷歌版本所对应)

2、创建一个Maven项目并导入所需依赖

3、爬虫入门

 4、一些相关api的操作(获取网页里面的数据)

 


一、selenium简介

定义:

selenium是一个应用于Web程序自动化测试工具,能够直接运行在浏览器中,体验感与真正用户操作相似,同时支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。
 适用于自动化测试,js动态爬虫(破解反爬虫)等领域。

如何组成的:

  1)Selenium IDE:嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作录制与回放功能,主要用于快速创建BUG及重现脚本,可转化为多种语言
     2)Selenium RC: 核心组件,支持多种不同语言编写自动化测试脚本,通过其服务器作为代理服务器去访问应用,达到测试的目的
     3)Selenium WebDriver(重点):一个浏览器自动化框架,它接受命令并将它们发送到浏览器。它是通过特定于浏览器的驱动程序实现的。它直接与浏览器通信并对其进行控制。Selenium WebDriver支持各种编程语言,如Java、C# 、PHP、Python、Perl、Ruby
     4)Selenium grid:测试辅助工具,用于做分布式测试,可以并行执行多个测试任务,提升测试效率。

 从selenium的组件来看我们能够提取以下几个selenium特点

  1)开源、免费
     2)多浏览器支持:FireFox、Chrome、IE、Opera、Edge;
     3)多平台支持:Linux、Windows、MAC;
     4)多语言支持:Java、Python、Ruby、C#、JavaScript、C++;
     5)对Web页面有良好的支持;
     6)简单(API 简单)、灵活(用开发语言驱动);
     7)支持分布式测试用例执行。

二、selenium的简单实操(主要运用的是webdriver组件) 

使用webdriver进行爬虫:数据采集、数据清晰、数据分析!!!

1、下载所需驱动包(必须与谷歌版本所对应)


     http://chromedriver.storage.googleapis.com/index.html

2、创建一个Maven项目并导入所需依赖

   <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.141.59</version>
     </dependency>

3、爬虫入门

  //设置驱动
     System.setProperty("webdriver.chrome.driver","D:\\chromedriver.exe");
     //创建驱动
     WebDriver driver=new ChromeDriver();
     //与将要爬取的网站建立连接
     driver.get("https://www.baidu.com");
     //关闭浏览器
     driver.close();
     //释放资源
     driver.quit();

路径与存放驱动包位置必须一致!!!可以根据自己的需求更改网址

运行之后浏览器出现这几个字即代表成功!

 4、一些相关api的操作(获取网页里面的数据)

 1.元素选择方式
     
     1)Class选择:driver.findElement(By.className("s_ipt"));
     2)ID选择:   driver.findElement(By.id("kw"));
     3)name选择: driver.findElement(By.name("wd"));
     4)tag选择:  driver.findElements(By.tagName("input"));
     5)link选择: driver.findElement(By.linkText("地图"));
     6)Partial link选择(a标签文本内容模糊匹配):driver.findElement(By.partialLinkText("使用百"));
     7)css选择器:driver.findElement(By.cssSelector("#kw"));
     8)xpath选择:driver.findElement(By.xpath("//*[@id=\"kw\"]"));

     2.获取单个元素:driver.findElement

     3.获取多个元素:driver.findElements

     4.输入内容:input.sendKeys("java");

     5.元素点击:element.click();

     6.获取元素属性:nextPageEle.getAttribute("class")

     7.获取标签文本内容:titleEle.getText()

相关文章:

  • 某IOT设备漏洞分析
  • 毕设必备!Python智慧教室:考试作弊系统、动态点名等功能
  • 【Go】【反射】反射基本介绍和使用
  • 二叉树的基本算法(c++)
  • 1的取反为什么是-2
  • 基于springboot的疫情社区生活服务系统
  • 计算机专业哀鸿遍野:低代码平台和程序员水火不容,马上被取代
  • 【无人机】基于Matlab模拟无人机群跟踪固定目标
  • html5 标签
  • Linux安全基线-audit审计规则配置7小项(CentOS8)
  • ES6知识点(1)
  • 基于 HTML5/CSS3 制作漂亮的登录页面
  • 【HBASE】Hbase的Shell操作
  • Visual Studio Code下C/C++开发环境的配置及使用
  • 昨天
  • [deviceone开发]-do_Webview的基本示例
  • [译]CSS 居中(Center)方法大合集
  • css系列之关于字体的事
  • Github访问慢解决办法
  • Java多态
  • JAVA多线程机制解析-volatilesynchronized
  • java中具有继承关系的类及其对象初始化顺序
  • js中的正则表达式入门
  • maya建模与骨骼动画快速实现人工鱼
  • php ci框架整合银盛支付
  • SpringCloud集成分布式事务LCN (一)
  • windows下mongoDB的环境配置
  • 程序员最讨厌的9句话,你可有补充?
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 用quicker-worker.js轻松跑一个大数据遍历
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • (9)STL算法之逆转旋转
  • (9)目标检测_SSD的原理
  • (C#)获取字符编码的类
  • (Git) gitignore基础使用
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • (转载)hibernate缓存
  • .NET Core 成都线下面基会拉开序幕
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .NET/C# 的字符串暂存池
  • @Repository 注解
  • [ Linux ] Linux信号概述 信号的产生
  • [1]-基于图搜索的路径规划基础
  • [BZOJ] 3262: 陌上花开
  • [bzoj1006]: [HNOI2008]神奇的国度(最大势算法)
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽
  • [Deep Learning] 神经网络基础
  • [Godot] 3D拾取
  • [LeetCode 687]最长同值路径
  • [LeetCode]—Longest Palindromic Substring 最长回文子串