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)