Selenium(简单入门)

 请直接看原文:
selenium 使用教程详解-java版本 - 小葛师兄 - 博客园 (cnblogs.com)

 --------------------------------------------------------------------------------------------------------------------------------

第一章 Selenium 概述#

1.1.Selenium 发展史#

​ Selenium是一系列基于Web的自动化工具,提供一套测试函数,用于支持Web自动化测试。函数非常灵活,能够完成界面元素定位、窗口跳转、结果比较。具有如下特点:

  • 多浏览器支持
    • 如IE、Firefox、Safari、Chrome、Android手机浏览器等。
  • 支持多语言
    • 如Java、C#、Python、Ruby、PHP等。
  • 支持多操作系统
    • 如Windows、Linux、IOS、Android等。
  • 开源免费
    • 官网:http://www.seleniumhq.org/

Selenium框架由多个工具组成,包括:Selenium IDE,Selenium RC,Selenium WebDriver和SeleniumRC。

发展到如今 Selenium 已经发布到了 3.0 版本了,以下是简单总结发展过程以及一些变化:

  • Selenium 1.0

Jason Huggins在2004年发起的 Selenium 项目,使用 JavaScript 编写的一个类库,这个 JavaScript 类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。Selenium由此诞生。

  • Selenium 2.0

因为Selenium和Webdriver的合并,所以,Selenium 2.0由此诞生。

简单用公式表示为:Selenium 2.0 = Selenium 1.0 + WebDriver

需要强调的是,在Selenium 2.0中主推的是WebDriver,可以将其看作Selenium RC的替代品。因为Selenium为了保持向下的兼容性,所以在Selenium 2.0中并没有彻底地抛弃Selenium RC。

所以,我们在学习Selenium2.0的时候,核心是学习WebDriver。它的工作原理是这样的:

  • Selenium 3.0

    Selenium 3.0做了一些不大不小的更新:

    • 1、终于去掉了RC,简单用公式表示为:Selenium 3.0 = Selenium 2.0 - Selenium RC(Remote Control)

    • 2、Selenium3.0只支持Java8版本以上。

    • 3、Selenium3.0中的Firefox浏览器驱动独立了,以前装完selenium2就可以驱动Firefox浏览器了,现在和Chrome一样,必须下载和设置浏览器驱动。

    • 4、MAC OS 集成Safari的浏览器驱动。默认在/usr/bin/safaridriver 目录下。

    • 5、只支持IE 9.0版本以上。

1.2.Selenium WebDriver原理#

将 WebDriver 驱动浏览器类比成开出租车的场景。

在开出租车时有三个角色:

  • 乘客:他/她告诉出租车司机去哪里,大概怎么走。

  • 出租车司机:他按照乘客的要求来操控出租车。

  • 出租车:出租车按照司机的操控完成真正的行驶,把乘客送到目的地。

在WebDriver中也有类似的三个角色:

  • 工程师写的自动化测试代码:自动化测试代码发送请求给浏览器的驱动(比如火狐驱动、谷歌驱动)
  • 浏览器的驱动:它来解析这些自动化测试的代码,解析后把它们发送给浏览器
  • 浏览器:执行浏览器驱动发来的指令,并最终完成工程师想要的操作。

第二章 Selenium 环境搭建#

2.1.java 环境#

想要通过 java 语言来使用 selenium 框架,前提要完成 jdk 环境的安装。

详细安装教程见:https://blog.csdn.net/shengmer/article/details/78836255

2.2.selenium 环境#

简单 java 工程:

直接导入 selenium的 jar 包就可以了。

jar包下载地址: Selenium各个版本jar下载 , 下载对应的版本即可

maven工程:

在pom文件中引入对应的依赖即可:

maven仓库:https://mvnrepository.com/

 

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

 

2.3.selenium3 对应浏览器驱动下载#

当selenium升级到3.0之后,对不同的浏览器驱动进行了规范。如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。
各浏览器下载地址:

  • Firefox浏览器驱动:geckodriver

  • Chrome浏览器驱动:chromedrivertaobao备用地址

  • IE浏览器驱动:IEDriverServer

  • Edge浏览器驱动:MicrosoftWebDriver

  • Opera浏览器驱动:operadriver

  • PhantomJS浏览器驱动:phantomjs

    注:部分浏览器驱动地址需要梯子。

设置浏览器驱动

设置浏览器的地址非常简单。 我们可以手动创建一个存放浏览器驱动的目录,如: C:\driver , 将下载的浏览器驱动文件(例如:chromedriver、geckodriver)丢到该目录下。
我的电脑–>属性–>系统设置–>高级–>环境变量–>系统变量–>Path,将“C:\driver”目录添加到Path的值中。

验证浏览器驱动

验证不同的浏览器驱动是否正常使用。

 

import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.edge.EdgeDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.opera.OperaDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;


WebDriver driver = new ChromeDriver();    //Chrome浏览器

WebDriver driver = new FirefoxDriver();   //Firefox浏览器

WebDriver driver = new EdgeDriver();      //Edge浏览器

WebDriver driver = new InternetExplorerDriver();  // Internet Explorer浏览器

WebDriver driver = new OperaDriver();     //Opera浏览器

WebDriver driver = new PhantomJSDriver();   //PhantomJS
 

第三章 Selenium 简单示例#

  • 打开百度进行搜索:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

/**
 * @Description: 通过selenium操作浏览器打开百度进行搜索
 * selenium版本:3.12.0; 通过maven管理jar包
 * 开发工具:IDEA
 * jdk:1.8
 * 浏览器:chrome 75+
 * @Author: ggf
 * @Date: 2020/03/22
 */
public class BaiduSearch {
    public static void main(String[] args) {
        // 1.创建webdriver驱动
        WebDriver driver = new ChromeDriver();
        // 2.打开百度首页
        driver.get("https://www.baidu.com");
        // 3.获取输入框,输入selenium
        driver.findElement(By.id("kw")).sendKeys("selenium");
        // 4.获取“百度一下”按钮,进行搜索
        driver.findElement(By.id("su")).click();
        // 5.退出浏览器
        driver.quit();
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/406519.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“从根到叶:深入理解排序数据结构“

一.排序的概念及引用 1.1排序的概念 排序是指将一组数据按照一定的规则重新排列的过程。排序的目的是为了使数据具有有序性&#xff0c;便于查找、插入、删除等操作&#xff0c;提高数据的组织和管理效率。 稳定性是指如果序列中存在相等元素&#xff0c;在排序完成后&#…

五、矩阵的运算

1、矩阵的加减&#xff1a; 前提&#xff1a;两个矩阵必须是同形矩阵。 矩阵加减具有交换律&#xff0c;矩阵矩阵相乘没有交换律。 计算结果&#xff1a;元素级运算。 2、矩阵的数乘&#xff1a; 计算结果&#xff1a;元素级运算。这里要区别与行列式的数乘。 3、矩阵与向量的乘…

fiddler抓取,Android真机测试

1.配置Fiddler抓取并解密HTTPS包 Fiddler默认是不抓取HTTPS包的&#xff0c;需要进行相应的配置。 打开Fiddler&#xff0c;选择“Tools->Fiddler Options...” 2.在弹出的对话框中选择“HTTPS”选项卡&#xff1a; 3.勾选“Capture HTTPS CONNECTs”&#xff0c;接着勾选…

多人协作记账账本小程序开源版开发

多人协作记账账本小程序开源版开发 支持多人协作的记账本小程序&#xff0c;可用于家庭&#xff0c;团队&#xff0c;组织以及个人的日常收支情况记录&#xff0c;支持周月年度统计 便捷记账 便捷的记账方式&#xff0c;支持多种记账类型&#xff0c;快捷切换账本等 多账本 支…

springboot751社区维修平台

springboot751社区维修平台 获取源码——》公主号&#xff1a;计算机专业毕设大全

Element使用Message消息提示

Element使用Message消息提示 一、导入Element1、npm 安装2、引入 Element3、实现代码4、效果 一、导入Element 1、npm 安装 推荐使用 npm 的方式安装 npm i element-ui -S2、引入 Element 在 main.js 中写入以下内容 import ElementUI from element-ui; import element-ui…

内核解读之内存管理(6)address_space建立文件索引结点inode和页page、虚拟地址空间vma的映射

内存管理和文件系统总会交织在一起&#xff0c;所以我们今天聊的内容和文件系统有关。 上一节的struct page结构体中&#xff0c;我们看到了一个成员struct address_space*。很明显是用于建立page和address_space的关联。 它是代表某个地址空间吗&#xff1f;实际上不是的&am…

新版Java面试专题视频教程——虚拟机篇②

新版Java面试专题视频教程——虚拟机篇② 3 垃圾收回3.1 简述Java垃圾回收机制&#xff1f;&#xff08;GC是什么&#xff1f;为什么要GC&#xff09;3.2 对象什么时候可以被垃圾器回收3.2.1 引用计数法3.2.2 可达性分析算法 3.3 JVM 垃圾回收算法有哪些&#xff1f;——4种3.3…

4 buuctf解题

[CISCN 2019 初赛]Love Math1 打开题目 题目源码 <?php error_reporting(0); //听说你很喜欢数学&#xff0c;不知道你是否爱它胜过爱flag if(!isset($_GET[c])){show_source(__FILE__); }else{//例子 c20-1$content $_GET[c];if (strlen($content) > 80) {die("…

如何查看网络,管理网络,以及虚拟网络

一 网络 1 怎么查看网卡&#xff1f;看是千兆还是万兆&#xff1f;是全双工还是半双工&#xff0c;丢包率怎么样&#xff1f;品牌厂家是什么&#xff1f; 用lspci 可以查看网卡的信息 千兆&#xff1a;Gigabit 万兆&#xff1a;10-Gigabit 百兆&#xff1a;100MEther net if…

【Java程序设计】【C00288】基于Springboot的篮球竞赛预约平台(有论文)

基于Springboot的篮球竞赛预约平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的篮球竞赛预约平台 本系统分为前台功能模块、管理员功能模块以及用户功能模块。 前台功能模块&#xff1a;用户进入到平台首页&a…

Spring篇----第四篇

系列文章目录 文章目录 系列文章目录前言一、区分构造函数注入和 setter 注入二、spring 中有多少种 IOC 容器?三、区分 BeanFactory 和 ApplicationContext。四、列举 IoC 的一些好处。前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大…

最新授权系统源码,代理分销,盗版检测,盗版密码查看

级授权源码 – 高价值企业授权系统&#xff0c;内含授权系统、代理分销、工单系统和盗版检测功能 功能简介&#xff1a; 1、网站管理&#xff1a;包括基本管理、系统设置、公告设置、接口设置、价格设置和下载设置等。 2、内容管理&#xff1a;包括文章管理和广告轮图管理&am…

IT廉连看——C语言——循环语句

IT廉连看——C语言——循环语句 循环语句分为三种&#xff1a; while for do while 一、while循环 我们已经掌握了&#xff0c;if语句&#xff1a; if(条件)语句; 当条件满足的情况下&#xff0c;if语句后的语句执行&#xff0c;否则不执行。 但是这个语句只会执行一次…

工作睡觉监测识别摄像机

工作睡觉监测识别摄像机是一种用于监测员工是否在工作时间内偷懒、打瞌睡或者进行其他不合规行为的智能监控设备。这种摄像机利用先进的人工智能和图像识别技术&#xff0c;能够实时监测员工的工作状态&#xff0c;发现异常行为并采取相应的措施。 工作睡觉监测识别摄像机的工作…

智能风控体系之PagePank算法应用

PageRank算法&#xff0c;即网页排名算法&#xff0c;由Google创始人Larry Page在斯坦福上学的时候提出来的。该算法用于对网页进行排名&#xff0c;排名高的网页表示该网页被访问的概率高。PageRank算法计算每一个网页的PageRank值&#xff0c;然后根据这个值的大小对网页的重…

选择适合你的编程语言

引言 在当今瞬息万变的技术领域中&#xff0c;选择一门合适的编程语言对于个人职业发展和技术成长至关重要。每种语言都拥有独特的设计哲学、应用场景和市场需求&#xff0c;因此&#xff0c;在决定投入时间和精力去学习哪种编程语言时&#xff0c;我们需要综合分析多个因素&a…

计算机网络-网络层,运输层,应用层

网络层/网际层 网络层的主要任务包括&#xff1a; 提供逻辑上的端到端通信&#xff1a;网络层负责确定数据的传输路径&#xff0c;使数据能够从源主机传输到目标主机&#xff0c;即实现端到端的通信。数据包的路由和转发&#xff1a;网络层根据目标主机的地址信息&#xff0c…

稀疏计算、彩票假说、MoE、SparseGPT

稀疏计算可能是未来10年内最有潜力的深度学习方向之一&#xff0c;稀疏计算模拟了对人脑的观察&#xff0c;人脑在处理信息的时候只有少数神经元在活动&#xff0c;多数神经元是不工作的。而稀疏计算的基本思想是&#xff1a;在计算过程中&#xff0c;将一些不重要的参数设置为…

冲击大厂算法面试=>链表专题【链表删除】

冲击大厂算法面试>链表专题【链表删除】 本文学习目标或者巩固的知识点 学习如何删除链表中的某个节点 如何删除valk的节点如何删除倒数第n个节点 学习如何删除链表中的某些节点 涉及头节点问题如何解决 提前说明&#xff1a;算法题目来自力扣、牛客等等途径 &#x1f7e…