基础
UI自动化
用代码模拟人的操作(点击、输入、滑动、下拉选择等)
分类
- web网站(selenium)
- pc端
- 移动端(appium)
selenium环境搭建
- 下载selenium库
- 安装浏览器(谷歌、火狐、edge)
- 下载浏览器驱动(根据浏览器版本下载 edge:Microsoft Edge WebDriver | Microsoft Edge Developer)
- 将驱动路径添加到环境变量path中
html
<html> </html>
<head> </head>:头部
<meta charset="utf-8">:字符集
<meta name="xh" content="2177488443@qq.com"/>:设置页面的作者
<meta name="keywords" content="人工智能;天才少年"/>:设置搜索关键字
<meta name="description" content="描述"/>:设置页面描述
<title> </title>:标题
<link />:引入外部css样式表
<script> </script>:引入外部js代码
<body> </body>:主要内容
<h1> </h1>:标题标签(h1~h6 会自动换行)
<p> </p>:段落标签(自动换行)
<b> </b>:加粗
<i> </i>:倾斜
<u> </u>:下划线
<del> </del>:中划线
<font> </font>:设置字体(大小、颜色)
<br>:换行
<hr>:分割线(width align)
实体字符
<:<
>:>
&:&
":"
':'
×:×
÷:÷
多媒体字符
1.图片
<img src="" width="" height="" title="" alt="">
width:宽
height:高
title:鼠标悬停时的提示信息
alt:图片地址错误时的信息
2.音视频
<embed src="" width="" height="">
width:宽
height:高
超链接标签
<a href="" target="_blank">文字</a>
_blank:打开一个新的标签页
列表标签
1.无序列表
<ul type="">
<li>张三</li>
<li>李四</li>
<li>王五</li>
</ul>
type:更换序号样式
2.有序列表
<ol type="" start="">
<li>张三</li>
<li>李四</li>
<li>王五</li>
</ol>
type:更换序号样式
start:初始标号
设置锚点
<ul>
<li><a href="#1">用户管理</a></li>
<li><a href="#2">系统设置</a></li>
</ul>
<a name="1"></a>
<h1>用户管理</h1>
<a name="2"></a>
<h1>系统设置</h1>
表格标签
<table border="" cellspacing="" background="">
<tr>
<th>姓名</th>
<th>性别</th>
</tr>
<tr>
<td>xh</td>
<td>男</td>
</tr>
border:设置边框大小
cellspacing:设置单元格和边框之间的缝隙
backgroud:设置背景图片
rowspan:合并行
colspan:合并列
tr:代表一行
th:代表每一个表头单元格,会自动加粗加黑
td:一个普通单元格
内嵌框架
<iframe src="" width="" height=""> </iframe>
form表单
<form action="" method="get">
用户名:<input type="text" name="username" id="" value=""/>
下拉选择框:
<select name="">
<option value="1">天津</option>
<option value="2">天津</option>
<option value="3">天津</option>
</select>
多行文本框:
<textarea>
</textarea>
label标签
<label for="uname">用户名:</label>
</form>
type="text" : 文本框,里面文字可见(text password radio checkbox button reset image submit)
name : 表单元素必须属性,有了name才可以提交数据,采集数据
value :文本框中具体内容
键值对:name=value
placeholder : 提示语
selenium
元素选取
- id (如果某个元素有id属性,且id属性的值唯一,则可以利用该属性的值定位)
driver.find_element_by_id('id属性的值')#如果id属性的值是一串无序的字母或数字,则不能使用(可能是动态id)
- name(根据name属性定位,需要name属性唯一)
driver.find_element_by_name('name属性的值')
- class name (不推荐使用,一般不唯一)
- tag name(通过标签名本身选择,一般无法使用)
- link text(一般不要使用)
- partial link text(一般不要使用)
- xpath(/:直接子节点 //:后代节点)(//标签[@属性名=“属性值”])
driver.find_element_by_xpath('//input[@name="keyword"]')
- css selector(根据标签以及标签的属性进行定位)(标签[属性名=“属性值”])
driver.find_element_by_css_selector('input[name=""keyword]')
浏览器操作
1.设置浏览器缩放大小
driver.set_window_size(宽,高)
2.浏览器的前进和后退
driver.back()#后退
driver.forward()#前进
3.浏览器的刷新
driver.refresh()
webdriver常见方法
1.元素的点击,文本内容的清除、输入
#输入
search_element = driver.find_element_by_id('kw')
search_element.send_keys('csdn')
#清除
search_element.clear()
#点击
driver.find_element_by_id('su').click()
2.submit提交表单
search_element.submit()#输入内容后可以代替点击
3.其他常见方法
print(search_element.size) #返回大小
print(driver.find_element_by_id('su').text) #返回文本内容
print(driver.find_element_by_id('su').get_attribute('value')) #获得属性值 value属性的值
print(driver.find_element_by_id('su').is_displayed) #判断元素是否用户可见 返回值true/false 用于弹窗