基于Python语言的Selenium自动化

一、 基于Python 语言的Selenium 环境搭建

安装 python
这里安装 3.6 版
注意勾选添加环境变量

安装 selenium
pip install selenium-3.12.0-py2.py3-none-any

准备浏览器驱动器
IEDriverServer、chromedriver(google)、geckodriver(Firefox)
webdriver.Ie()、.Chrome()、.Firefox()
均无需安装,复制到\Python36-32 中即可
HTMLTestRunner.py
无需安装或配置
用于生成测试结果报告
可以自己修改

二、 编写脚本

导入包

from selenium import webdriver
from selenium.webdriver.support.select import Select
用以支持下拉列表对象
from time import sleep

打开和关闭浏览器

driver=webdriver.Ie()
webdriver.Chrome()
webdriver.Firefox()
driver.close()

关闭浏览器
driver.quit()
关闭浏览器以及浏览器驱动程序

打开Url

driver.get(“url 地址”)

等待时间

sleep(3)
wait 3s
driver.implicitly_wait(3)
隐性等待时间为 3 秒

切换框架/窗口

使用 switch_to 包

定位到当前聚焦的元素上
driver.switch_to.active_element()
切换到 alert 弹窗
driver.switch_to.alert()
切换到主页面
driver.switch_to.default_content()
切换到某个 frame
driver.switch_to.frame(编号或 name)
切换到指定的 window_name 页签
driver.switch_to.window(window_name)
切换到上一层的 frame
driver.switch_to.parent_frame()

定位页面元素

driver.find_element_by_
name(“login”)
id
xpath
tag_name
link_text
partial_link_text
class_name
driver.find_elements_by_
name(“控件 name 名”)[下标]
Select(driver.find_elements_by_?)
用于识别下拉列表元素
需要导入包

from selenium.webdriver.support.select import Select

页面元素的属性和方法

driver.title()
获得网页标题
对象.text
获得页面元素的文本值
属于属性
对象.get_attribute(“属性名”)
获得指定属性的值
Select(对象).select_by_value
需要导入包
from selenium.webdriver.support.select import Select
select_by_index
select_by_visible_text
deselect_all()
取消所有选项
deselect_by_index()
取消对应 index 选项
deselect_by_value()
取消对应 value 选项
deselect_by_visible_text()
取消对应文本选项
first_selected_option()
返回第一个选项
all_selected_options()
返回所有的选项
页面元素.send_keys(“数据”)
用于键盘输入数据
页面元素.click()
支持单选按钮、复选框、命令按钮

三、 增强脚本

检查点

1.1 in 运算符

str1 in str2
用于判断 str1 是否存在于 str2 中

1.2 if 语句

if (条件表达式):
语句
else:
语句
括号可以省略
语句必须缩进
英文冒号不能省略

参数化

for 循环

for i in range(初值,终值+1):
语句
冒号不能省略
range 表示范围
语句必须缩进

读 txt 文件

file=open(文件名,‘r’)
返回文件对象,文本默认编码方式是 UTF-8。
'r’表示只是读,默认项。
读取时默认会将平台有关的行结束符(Windows 中是\r\n)转换为\n。
文件名外使用 r 可以禁止\转义。
遍历文件
for 变量 in file
输出变量即可读出整个文件。
按行读出。
list=file.readlines( )
把文件中的所有行读到一个列表中,换行符可读出。
len(list)
返回列表中的元素个数
关闭文件
file.close( )
释放文件占用的系统资源。

读 excel 文件

安装 pandas
pip install --no-index --find-links=包位置 -r requirements.txt
requirements.txt 中记录着所有需要的依赖包和版本号
验证是否成功
python→import pandas
导入包
import pandas
获得数据
data=pandas.read_excel(“xls 文件名”,sheet_name=sheet 表编号或名称,names=[新列名列表],dtype={“新列名”:类型},,skiprows=跳过数据行的行数,header=None 表示没有列名)
默认认为包含列名
获得全部数据,结果为 DataFrame(字典,列名为关键字)
datalist=data.values.tolist()
返回列表

访问数据库

安装 pymysql
用于支持 python 连接 mysql。
pip install pymysql…tar.gz

连接数据库
conn=pymysql.connect(host=‘服务器 IP’, port=3306, user=‘用户名’, passwd=‘密码’,
db=‘数据库名’, charset=‘utf8’)
port=3306,不能加引号,charset='utf8’可省略,此时使用默认端口和字符集。
用游标读取数据
cur=conn.cursor( )
sql=select 语句
cur.execute(sql)
data=cur.fetchall( )
获得数据(元组)
cur.close( )
conn.close( )
关闭游标和数据库

用游标插入数据
conn=pymysql.connect(…)
cur=conn.cursor( )
sql=‘insert into 表名 values(%d, “%s”)’ % (变量或常量 1,变量或常量 2)
%s 必须加引号,%d 可加可不加。
(变量或常量 1,变量或常量 2)是元组。
cur.execute(sql)
conn.commit( )
用于提交数据,不可省略。
cur.close( )
conn.close( )
批量提交数据

将很多数据写入数据库时,使用循环每次写入数据会导致服务器压力很大,可 以一次性提交批量数据。

列表.append((变量 1, 变量 2, …, 变量 n))
必须加括号,元组存入列表。
sql=‘insert into 表名 values(%s, %s, %s, …%s)’
一律使用%s,%s 与变量个数对应,不能加引号。
cur.executemany(sql, 列表)
conn.commit( )
cur.close( )
conn.close( )

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值