web自动化测试 学习笔记20240514 Day1

Day1 2024年5月14日

1.自动化基本知识

(1)自动化基本概念优点及解决问题

1.机器设备代替人为完成制定目标的过程
2.有点:效率高、减少劳动力、提高产品质量、同意规格
3.自动化测试:让程序或工具代替人工对程序的验证过程(80%)
>解决:【回归测试、压力测试、兼容性测试等(操作系统、分辨率等)】
>【正向和逆向】

(2)自动化分类

1. web自动化:基于浏览器
2. 移动自动化(app):
3. 接口自动化(基于工具和代码)
4. 单元测试-自动化测试

(3)web自动化

【1.概念】web项目进行功能验证。
【2.应用范围】
	> 需求变动不频繁
	> 项目周期长
	> 项目需要回归测试。
【所属分类】:
	黑盒测试(功能√)、白盒(单元)、灰盒测试(接口测试)--->【代码可见度】划分

(4)web自动化工具

1.QTP:web 和桌面自动化测试
2.Selenium: 免费 开源 功能测试
3.Robot framwork:关键字驱动

(5)Selenium

特点

1.开源软件:源代码开放,可以增加某些功能
2.跨平台:linux Windows mac
3.支持多种浏览器
4.支持多种语言
5.成熟稳定
6.功能强大

(5)Selenium家族介绍

Selenium 1.0

1. selenium IDE 录制源代码工具
2. selenium Grid 分布式工具。启动多个浏览器
3. selenium RC  通过JS模拟浏览器

Selenium 2.0

selenium + web Driver

Selenium 3.0

支持java8,safa Windows10 edge 浏览器

2. 环境搭建

(1)环境搭建步骤

1.python 环境
2.安装selenium 包
3.安装浏览器
4.安装浏览器驱动

代码

# 安装
pip install selenium
#查看
pip show selenium
# 卸载
pip unistall selenium
# 安装指定版本
pip install selenium==版本号

推荐使用pycharm安装

原因:会安装在当前项目的环境中

方法

file-->setting--->当前项目名称---> interpreter--->搜索安装

(2)浏览器和驱动的安装

驱动下载:注意版本
火狐浏览器48版本以下,内置驱动

使用驱动

我的电脑+右键——>高级系统设置-->属性-->环境变量--->path--->变量值添加路径

如果不将驱动添加到path变量中,则selenium不能使用,提示驱动错误。

path

Dos内部命令:dir 
外部命令:当前目录可执行文件
path:添加后,先关闭后可以执行
为什么添加path:添加在path中之后才可以执行,如果不

dos命令默认的搜索顺序

1.内部命令
2.当前环境可执行文件
3.检测path变量指定的目录

3.第一个案例

题目:使用程序启动百度浏览器,停留3秒,关闭浏览器

# 1.导包
from selenium import webdriver
from time import sleep()

#2.获取浏览器对象
driver = webdriver.Firfox()
driver = webdriver.Chrome()
# 3. 打开url
driver.get("http://www.baidu.com")
#4.暂停3s
sleep(3)
#5.关闭浏览器
driver.quit()

4.元素定位

> 问什么学习元素定位:
让程序操作指定元素,就必须先找到此元素

(1) 如何进行元素定位

1.依赖标签名、属性、层级、路径

(2) 定位工具:

火狐:Firebug(F12直接FIrenebug 图标)
Google: F12

(3)定位元素的方式

selenium提供8中元素定位方式

 基于元素属性特有方式
	1.id
    2.name
    3.class_name
基于元素标签名称定位
	4.tag_name 
定位超链接文本
    5.link_text(定位超链接 a 标签)
    6. partial_link_text(定位超链接 a 标签,模糊)
7.Xpath(基因元素路径定位)
8.CSS(基因选择器)

(4) id 定位

前提:元素有id属性
一般id是在当前页面唯一的

语法

driver.find_element_by_id()

案例1 本地html

需求:打开A.html,完成以下操作
(1)使用id定位,输入用户名admin
(2)使用id定位,输入密码123456
(3)3s后关闭浏览器
#1.导包
from selenium import webdriver
from time import sleep

#2.获取浏览器对象
driver=webdriver.Firfox()
driver=webdriver.Chrome()

#3.打开url
#注意\在python中是转义字符,用r修饰后不进行转义
url=r"C:\as\shisu\A.html"
# 双反斜杠进行转移操作
url="C:\\as\\shisu\\A.html"
driver.get("url")

#4.查找用户名元素
username=driver.find_element_by_id("userA")

#5.查找密码元素
password=driver.find_element_by_id("passwordA")

#6.输入用户名admin
username.send_keys("admin")

#7.输入密码123456
password.send_keys("123456")

sleep(3)

driver.quit()
注意:
/是在浏览器路径
\是本地文件路径

(5)name属性定位

name可以重复

(6)class_name属性定位

class属性一般为多个值

class多个命名

需求:打开A.html,完成以下操作
(1)使用class_name定位电话号码A,输入"18611111111"
(2)使class_name定位邮箱,输入密码 “123@qq.cpm”
(3)3s后关闭浏览器
from selenium import webdriver
from time import sleep

driver=webdriver.FireFox()

url=r"c:\sjo\sjs\A.html"
driver.get(url)

driver.find_element_by_class_name("telA").send_keys("186111111")

driver.find_element_by_class_name("mailA").send_keys("123@qq.com")

sleep(3)
driver.quit()

(7)tag_name

> 通过标签名称定位,标签名< 紧挨着的单词就是说tag名称
> tag_name可以有多个,所以不好定位,一般默认为能找到的第一个

案例1 tag_name输入用户名admin

from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
url=r"c:\dhids\shis\A.html"
driver.get(url)
driver.find_element_by_tag_name("input").send_keys("admin")
sleep(3)
driver.quit()

(8) partial_link_text & link_text

# link_text只能精确访问
# partial_link_text 模糊访问超链接文本

#语法
driver.find_element_by_link_text("").send_key()
driver.find_element_by_partial_link_text("").send_key()

5. XPath&CSS定位

问什么使用XPath和CSS定位

1. id,name,class_name只能通过属性来定位
2.tag_name 只能定位标签,通常为能找到的第一个标签
3.link_text& partical_link_text:只能对超文本进行定位
5.1 Xpath

5.1.1 定义

XPath 即XML path的简称(XML是一种标记语言)

5.1.2 定位策略

1.路径-定位
2.利用元素属性-定位
//&[属性='属性值']
3.属性与逻辑集合-定位
语法://*[@属性='属性值' and 属性='属性值']
4.层级与属性结合-定位
语法://*[@属性='父属性值']/input

5.1.3 定位方法

element=driver.find_element_by_xpath(xpath)

5.1.4 路径定位(相对路径和绝对路径)

绝对路径:最外层到指定元素的路径

/html//body/form/div/feildset/p[2]/imput

相对路径

//input[@id=password] and @name=“”

5.1.5 XPath 练习

#  需求:打开A.html,使用绝对路径定位用户名输入框,输入admin,暂停2s,使用相对路径定位用户名输入框,输入'123'

from selenium import webdriver
from time import sleep
driver=webdriver.Firefox()
url=r"c:\hsi\shisf\A.html"
driver.get(url)

driver.find_element_by_xpath(/html/).send_keys("admin")
sleep(2)
driver.find_element_by_xpath(//html/).send_keys("123")

5.1.6 XPath 扩展

//*text()="XXX"  # 定位文本内容是xxx的元素
//*contains(@attribute,"xxx")  ## attributes是元素,定位属性包含xxx的元素
//*[starts-with@id,"xxx"] ##定位属性xxx开头的元素
5.2 CSS

5.2.1 概述

1. CSS:cascading style sheets,是一种语言,用来html的显示样式
2.CSS中,选择是一种模式,用于选择需要添加样式的元素
3.优点:效率高,语法简单。

5.2.2 语法

element=driver.find_element_by_css_selector(css_selector)

5.2.3 CSS定位的常用策略

1.id选择器
> 根据元素的id属性选择
> 格式 #id
> 例如:#userA<选择id属性值为userA的元素>
2.class选择器
> 更具元素的id属性选择
> 格式 .class
> 例如:.telA<选择class属性值为telA的所有元素>
3.元素选择器:直接写元素  然后搜索
4.属性选择器:[属性名=属性值]
5.层级选择器:p>input代表直属关系;p input不直接

5.2.4 CSS案例

在这里插入图片描述```python
from selenium import webdriver
driver=webdriver.Firefox()
url=r’c:\shis\shie\A.html’
driver.get(url)

driver.find_element_by_class_selector(‘#userA’).send_keys(‘admin’)

driver.find_element_by_class_selector(“[name=‘passwordA’]”).send_keys(‘123456’)

driver.find_element_by_class_selector(‘.telA’).send_keys(‘18611111111’)

span=driver.find_element_by_class_selector(‘span’).text
print(“获取的span文本值:”,span)

driver.find_element_by_class_selector(“p>input[placeholder='电子邮箱 ']”).send_keys(‘123@qq.com’)


**5.2.5 CSS延伸**

```yacas
[属性名^=''] 表示开头
[属性名$='' ]表示结尾
[属性名*='' ]表示包含

在这里插入图片描述

5.3定位一组元素
driver.find_elements_by_xxx()
返回的结果为列表,需要遍历方法

6 元素的操作方法

6.1常用方法

click() 单击元素

send_keys() 模拟输入

clear() 清楚文本

6.2 案例

在这里插入图片描述

# 导包
from selenium import webdriver

#2.载入驱动
driver=webdriver.Firefox()

#3.获取url
url=r'c:\kosj\jk\A.html'
driver.get(url)

#3.输入信息
driver.find_element_by_css_selector('#userA').send_keys1('admin')

driver.find_element_by_css_selector("[password^='dA']").send_keys1('123456')

driver.find_element_by_css_selector(".telA").send_keys1('18611111111')

driver.find_element_by_css_selector('[]').send_keys1('123@qq.com')


#4.清空电话号码,写入新号码
driver.find_element_by_css_selector(".telA").clear()

driver.find_element_by_css_selector(".telA").send_keys1('186222222222')

#5.点击按钮
driver.find_element_by_css_selector("button").click()

#6.退出浏览器
driver.quit()

注意:输入之前一定要清空

ps:今天就附一下陪我学习的悠米吧 ,哈哈哈
悠米

  • 32
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在给出的引用中,没有提到具体的web自动化测试题目27。所以我无法回答你的问题。请问还有其他问题我可以帮助你解答吗?<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [18k 的 web 自动化面试题详解笔记.txt](https://download.csdn.net/download/m0_37735015/12684593)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [自动化测试面试题总结.docx](https://download.csdn.net/download/weixin_42384238/18451131)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [计算机毕设课设-基于JavaWeb+SSM+MySQL的网上商城系统.zip](https://download.csdn.net/download/qq_53122658/88217984)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值