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

selenium——基础知识

目录

一、基础概念

1、定义

2、自动化测试定义

3、自动化测试意义

4、自动化测试分类

5、自动化测试优缺点

6、自动化测试流程

二、selenium工具

1、发展历程

2、selenium特点

3、导入包

4、打开浏览器

三、WebDriver类

1、常用方法

(1)get()方法:用来打开指定URL的网页。

(2)close()方法:用来关闭当前的页面(标签页)。 

(3)quit()方法:退出浏览器(会关闭浏览器中所有的标签页)。 

2、常用属性

(1)title属性:用来获取到浏览器窗口上页面的标题。

(2)current_url属性:用来获取到当前页面的url。

(3)page_source属性:用来获取到网页源代码。

四、WebElement类

1、常用方法

(1)clear()方法:用来清除文本(例如:输入框中的值)。

(2)send_keys()方法:向元素(文本框)中输入指定的内容。

(3)get_attribute()方法:用来获取到标签中指定属性的值。

(4)is_displayed()方法:用来检测元素是否对用户可见。返回值是 bool 值:True或者False。

(5)is_enabled()方法:用来检查该元素是否可用,例如:按钮是否可以点击,输入是否可以输入等。如果标签中有disabled属性,这个元素就不用。

(6)click()方法:单击元素。例如:点击复选框、单选框、按钮等元素。 

(7)is_selected()方法:用来检测元素是否被选中,一般用来判断单选框、复选框是否被选中。返回值是bool值,选择了是True,否则是False。

2、常用属性

(1)text属性:用来获取元素的文本内容。双标签(既有开始标签,又有结束标签)有文本内容。单标签没有文本内容。

(2)tag_name属性:用来获取标签的标签名。

(3)location属性:用来获取元素的网页中的位置。

(4)size属性:用来获取到元素的尺寸(元素的宽度、高度)。


一、基础概念

1、定义

selenium是用于Web应用程序进行自动化测试的工具,可用于功能测试、兼容性测试等,主要用于回归测试阶段。

2、自动化测试定义

编程测试,编写一个程序来测试另外一个程序,把测试任务交给计算机来完成。

3、自动化测试意义

①减少手工测试中重复性的工作

②提高测试用例的执行效率

③可用于大量测试数据的生成

④可用于完成手工测试很难实现的测试场景

4、自动化测试分类

功能自动化测试:使用QTP(收费)、selenium等工具;

性能自动化测试:使用Jmeter、Locust等工具。

5、自动化测试优缺点

  • 优点:①效率高;
  •            ②可以让回归测试变得更加方便。
  • 缺点:①技术门槛比较高;
  •            ②自动化测试本身是一个工具,是工具就有局限性,也可能会有bug(自动化测试不可能完全替代手工测试,做自动化测试的目的不是为了发现更多新功能的问题,而是保证软件产品在迭代的过程中,原来已经测试过的功能依旧正常运行);
  •            ③自动化测试没有想象力、创造力,无法进行主观判断(无法做审美测试、用户体验测试等)。

6、自动化测试流程

  • ①编写自动化测试计划
  • ②设计自动化测试用例(从功能测试中挑选测试用例)
  • ③编写自动化测试代码
  • ④执行自动化测试代码(jenkins工具可以定时自动的执行代码)

二、selenium工具

1、发展历程

  • 2004年,由Jason Huggins在ThoughtWorks公司做测试的时候萌生了简化手工测试这样的想法,随之开发了selenium这个工具;
  • 2005年,selenium RC诞生了,即 selenium 1.0;
  • 2007年,WebDriver诞生;
  • 2010年,selenium RC 和 WebDriver 合并,即 selenium 2.0 ,也称之为 selenium WebDriver;
  • 2016年,诞生selenium 3.0版本;
  • 2021年,发布了selenium 4.0版本。

2、selenium特点

  • ①开源、免费;
  • ②selenium是专门为Web应用程序编写的验收测试工具;
  • ③selenium支持各大主流的浏览器(可做兼容性测试):Chrome、IE、Firefox、 Safari、Edge、Opera等;
  • ④selenium支持各大主流的编程语言:python、java、javaScript、C#、ruby等;
  • selenium可以做兼容性测试,可以测试Web应用程序在不同的浏览器、不同的操作系统上是否可以正常运行。

3、导入包

from  selenium  import  webdriver

4、打开浏览器

Chrome浏览器:driver  =  webdriver.Chrome()

Firefox浏览器:driver  =  webdriver.Firefox()

Ie浏览器:driver  =  webdriver.Ie()

Edge浏览器:driver  =  webdriver.Edge()

三、WebDriver类

1、常用方法

(1)get()方法:用来打开指定URL的网页。

driver.get("https://www.csdn.net/")

(2)close()方法:用来关闭当前的页面(标签页)。 

driver.close() 

(3)quit()方法:退出浏览器(会关闭浏览器中所有的标签页)。 

driver.quit() 

2、常用属性

(1)title属性:用来获取到浏览器窗口上页面的标题。

print(f"当前页面的title为:{driver.title}")

(2)current_url属性:用来获取到当前页面的url。

print(f"当前页面的URL为:{driver.current_url}")

(3)page_source属性:用来获取到网页源代码。

print(f"当前页面的URL为:{driver.page_source}")

四、WebElement类

1、常用方法

找到输入框:

ele  =  driver.find_element_by_id("toolbar-search-input")

(1)clear()方法:用来清除文本(例如:输入框中的值)。

ele.clear()

(2)send_keys()方法:向元素(文本框)中输入指定的内容。

ele.send_keys("selenium语句有哪些?")

(3)get_attribute()方法:用来获取到标签中指定属性的值。

print(f"标签中id属性的值为:{ele.get_attribute('id')}")

(4)is_displayed()方法:用来检测元素是否对用户可见。返回值是 bool 值:True或者False。

print(ele.is_displayed())

(5)is_enabled()方法:用来检查该元素是否可用,例如:按钮是否可以点击,输入是否可以输入等。如果标签中有disabled属性,这个元素就不用。

print(ele.is_enabled())

(6)click()方法:单击元素。例如:点击复选框、单选框、按钮等元素。 

ele.click()

(7)is_selected()方法:用来检测元素是否被选中,一般用来判断单选框、复选框是否被选中。返回值是bool值,选择了是True,否则是False。

 print(ele.is_selected())

2、常用属性

(1)text属性:用来获取元素的文本内容。双标签(既有开始标签,又有结束标签)有文本内容。单标签没有文本内容。

print(ele.text)

(2)tag_name属性:用来获取标签的标签名。

print(ele.tag_name)

(3)location属性:用来获取元素的网页中的位置。

(4)size属性:用来获取到元素的尺寸(元素的宽度、高度)。

print(ele.size)

http://www.xdnf.cn/news/558919.html

相关文章:

  • 数据一致性校验算法
  • 创建与管理MySQL数据库
  • Google精准狙击OpenAI Codex,发布AI编程助手Jules!
  • Fluent Bit持久化配置指南:保障日志不丢失的关键策略
  • Elasticsearch高级面试题汇总及答案
  • AMBA三种总线详解并比较
  • 元宇宙赋能广州文化传承,激发新活力​
  • C语言学习之内存函数
  • AI练习:毛发旋转效果
  • 再议AOI算法
  • 通过强化学习让大模型自适应开启思考模式
  • 101个α因子#9
  • C++(3)
  • idea如何让文件夹分层显示,而不是圆点分割
  • Python训练营打卡 Day31
  • 模板引擎:FreeMarker
  • 基于pyttsx3的文字转语音实现
  • 输出字母在字符串中位置索引
  • 超强吸水宠物垫行业2025数据分析报告
  • 从计算机组成原理寻址方式参悟指针的本质
  • cpu的x86架构跟ARM架构的区别介绍
  • SpringBoot整合LangChain4J
  • 深入探讨 Java 中的函数式编程
  • 9-社区动态(Stack布局)
  • 探秘大数据架构:解锁高效数据处理的密码
  • SpringBoot3+Vue3(1)-后端 请求头校验,jwt退出登录,mybaits实现数据库用户校验
  • 拦截指定注解(FeignClient),补偿重试
  • java异常处理
  • 7-Zip软件下载与使用攻略:如何使用7z格式解压缩更高效?
  • MySQL 8.0 OCP 1Z0-908 题目解析(9)