Selenium自动化测试框架

Selenium概述

什么是Selenium框架?

  • 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

  • 框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

  • 框架,其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。

为什么使用框架?

  • 1)自己从头实现太复杂

  • 2)使用框架能够更专注于业务逻辑,加快开发速度

  • 3)框架的使用能够处理更多细节问题

  • 4)使用人数多,稳定性,扩展性好

Selenium工作原理

在这里插入图片描述

selenium环境搭建(详情查阅讲义)

1.材料:

1)python3.7

2)Firefox35(大于43)

3)selenium2框架
稳定版 2.48.0 (pip install selenium=2.48.0)

4)浏览器驱动
chrome
ie


Selenium IDE

什么是Selenium-IDE?

Selenium的IDE(集成开发环境)是一个易于使用的Firefox插件,用于开发Selenium测试案例。它提供了一个图形用户界面,用于记录使用Firefox浏览器,用来学习和使用Selenium用户操作,但它只能用于只用Firefox浏览器不支持其它浏览器。

1.环境安装

官网:http://www.firefox.com.cn/

2.IDE功能简介

  1. 文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。Options : 用于设置seleniunm IDE。
  2. 用来填写被测网站的地址。
  3. 速度控制:控制案例的运行速度。
  4. 运行所有:运行一个测试案例集中的所有案例。
  5. 运行:运行当前选定的测试案例。
  6. 暂停/恢复:暂停和恢复测试案例执行。
  7. 单步:可以运行一个案例中的一行命令。
  8. 录制:点击之后,开始记录你对浏览器的操作。
  9. 案例集列表。
  10. 测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。
  11. 查看脚本运行通过/失败的个数。
  12. 当选中前命令对应参数。
  13. 日志/参考/UI元素/Rollup

Selenium API基础

1.浏览器驱动对象

1)库的导入
	from selenium import  webdriver

在这里插入图片描述

2)创建浏览器对象
	
	driver = webdriver.xxx()
	
	使用dir(driver)查看方法

在这里插入图片描述

3)浏览器尺寸相关操作
	
	maximize_window()		最大化

在这里插入图片描述

在这里插入图片描述

	get_window_size()		获取浏览器尺寸

在这里插入图片描述
在这里插入图片描述

	set_window_size()		设置浏览器尺寸

在这里插入图片描述
在这里插入图片描述

3)浏览器位置相关操作

	get_window_position()		获取浏览器位置

在这里插入图片描述
在这里插入图片描述

	set_window_position(x,y)		设置浏览器位置

在这里插入图片描述

在这里插入图片描述

	注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素。

4)浏览器的关闭操作
	
	close()			关闭当前标签/窗口

	quit()			关闭所有标签/窗口

案例:
	打开浏览器,调整大小,调整位置,并关闭

4)页面请求操作

	driver.get(url)				请求某个url对应的响应

	refresh()				刷新页面操作

	back()				回退到之前的页面

	forward()				前进到之后的页面

案例:
1.
1)访问 http://www.baidu.com
2)访问 https://zhuanlan.zhihu.com/
3)回退

3.获取断言信息

0)什么是断言?
	断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。


1)获取断言信息的操作

	current_url				获取当前访问页面url

	title						获取当前浏览器标题

	get_screenshot_as_png()	保存图片

	get_screenshot_as_file(file)	直接保存
	
	page_source				网页源码

在这里插入图片描述

4.元素的定位

1)元素定位方法的分类(调用方式):
	
	1.直接调用型(推荐方式)
		driver.find_element_by_xxx(value)
	
	2.使用By类型(需要导入By)
		from selenium.webdriver.common.by import By
		driver.find_element(By.xxx,value)


案例:
		用以上两种方式是实现百度中搜索 传智播客 



2)元素定位方法的分类(按定位方式):

在这里插入图片描述

3)八种定位方式的示例:

	1. driver.find_element_by_xpath(value)
		

	2. driver.find_element_by_css_selector(value)


	3. driver.find_element_by_id(value)
			

	4. driver.find_element_by_name(value)


	5. driver.find_element_by_class_name(value)
		

	6. driver.find_element_by_tag_name(value)
		案例:	必应搜索

	7. driver.find_element_by_link_text(value)
		

	8. driver.find_element_by_partial_link_text(value)

5.元素的操作

对元素的相关操作,一般要先获取到元素,再调用相关方法
element = driver.find_element_by_xxx(value)

1)点击和输入

	点击操作
		element.click()
	
	清空/输入操作(只能操作可以输入文本的元素)
		element.clear()				清空输入框
		element.send_keys(data)		输入数据

2)提交操作
	element.submit()		

	案例:
		1.打开百度搜索		2.搜索关键字 selenium
		3.清空			4.搜索python

Selenium API高级

1.多标签之间的切换
场景:有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。

1)获取所有窗口的句柄

	handles = driver.window_handlers()
	调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。

2)通过窗口的句柄进入的窗口

	driver.switch_to_window(handles[n])
	
	driver.switch_to.window(handles[n])

	通过窗口句柄激活进入某一窗口

案例:
	58同城租房信息

2.多表单切换
在网页中,表单嵌套是很常见的情况,尤其是在登录的场景

1)什么是多表单?
	实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面


2)处理方法
	
	直接使用id值切换进表单
		driver.switch_to.frame(value)/driver.switch_to_frame(value)

	定位到表单元素,再切换进入
		el = driver.find_element_by_xxx(value)
		driver.switch_to.frame(el)	/driver.switch_to_frame(el)

案例:
	126网站登录
  • 16
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Selenium是一个流行的自动化测试框架,它提供了一组工具和库,用于进行Web应用程序的自动化测试。Selenium具有以下几个主要组成部分: 1. Selenium WebDriver:它是Selenium的核心组件,用于编写和执行自动化测试脚本。它支持多种编程语言,包括Python,Java,C#等。通过使用WebDriver,可以模拟用户在浏览器中的行为,比如点击、输入文本等操作。 2. Selenium Grid:它允许在多个浏览器和平台上并行执行测试脚本。使用Grid,可以将测试任务分发给不同的节点,以加快测试的执行速度。这对于跨平台和异构环境中的自动化测试非常有用。 3. Selenium IDE:它是一个基于Firefox的插件,用于记录和回放用户在浏览器中的操作,以创建测试用例。Selenium IDE提供了一个简单易用的图形界面,但仅限于Firefox浏览器。 总结来说,Selenium是一个功能强大的自动化测试框架,可以帮助开发人员和测试人员编写和执行自动化测试脚本。通过使用Selenium WebDriver和其他组件,可以实现高效的测试脚本编写和执行,并支持并行测试和跨平台测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [selenium自动化测试框架](https://blog.csdn.net/kk_lzvvkpj/article/details/130902907)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [Selenium自动化测试框架](https://blog.csdn.net/qq_44954371/article/details/126611927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值