使用selenium模拟对浏览器的操作

关于selenium

selenium是一个用于Web应用程序测试的工具,selenium测试直接运行再浏览器上,就像真正的用户在操作一样。(百度百科)

安装selenium

使用pip安装selenium。pip install selenium

安装浏览器驱动

Chrome驱动下载地址:http://npm.taobao.org/mirrors/chromedriver/
Firefox驱动下载地址:https://github.com/mozilla/geckodriver/releases/
IE驱动下载地址:http://selenium-release.storage.googleapis.com/index.html

找到对应的浏览器、版本下载。
下载完成后,需要做两件事:1.将驱动放复制到浏览器根目录下;2.将驱动复制到Python根目录下。
python根目录下
浏览器根目录下
注意: 若浏览器的安装路径非默认路径,则需要将浏览器的安装路径添加到环境变量path中。

测试环境是否搭建成功

命令:

from selenium import webdriver
browser = webdriver.Chrome()

第二行可根据自身浏览器自行修改,例如:Ie()、Firefox()、Poera()等。若看到如下图所示启动了浏览器则表明环境搭建成功。
测试搭建环境

selenium快速入门

定位元素

方法说明
find_element_by_id使用id定位元素
find_element_by_name使用name定位元素
find_element_by_xpath使用xpath定位元素
find_element_by_link_text使用完整链接文本定位元素
find_element_by_partial_link_text使用部分链接文本定位元素
find_element_by_tag_name使用标签名定位元素
find_element_by_class_name使用类名定位元素
find_element_by_css_selector使用css选择器定位元素

例如:通过xpath定位:

from selenium import webdriver
# 打开一个浏览器
browser = webdriver.Chrome()
# 使用get方式打开一个站点
browser.get("https://www.baidu.com/")
# 使用xpath定位元素
inputTag = browser.find_element_by_xpath('//*[@id="kw"]')

鼠标事件

方法说明
ActionChains(driver)构造ActionChains对象
context_click()右键
move_to_element(above)鼠标悬停
double_click()双击
drag_and_drop()拖动
perform()执行所有ActionChains中的存储行为,可以理解成是对猪呢个操作的提交动作

例如我们首先通过xpath定位到一个表单的提交按钮,执行click(),即可提交表单

# 定位提交按钮
firstEntrance = browser.find_element_by_xpath('/html/body/form/div[3]/table/tbody/tr/td[1]/input')
# 单击提交按钮
firstEntrance.click()

键盘事件

send_keys()方法可以模拟对表单的填写,也可以模拟键盘的操作。

方法说明
send_keys(Keys.BACK_SPACE)删除键backspace
send_keys(Keys.SPACE)空格
send_keys(Keys.TAB)制表键TAB
send_keys(Keys.ESCAPE)回退ESC
send_keys(Keys.ENTER)回车
send_keys(Keys.Fn)键盘功能键Fn
send_keys(Keys.CONTROL,‘a’)全选
send_keys(Keys.CONTROL,‘c’)复制
send_keys(Keys.CONTROL,‘x’)剪切
send_keys(Keys.CONTROL,‘v’)粘贴

警告框处理

弹窗警告框有三种,alert()、confirm()、prompt()
alert()框只有一个确认按钮,用来警告;confirm()用于确认,有是/否的选项,prompt()可以用来输入文本。

方法说明
switch_to_alert()切换到弹窗
text获取对话框文本值
accept()接受弹窗报警
dismiss()解除弹窗报警
send_keys()输入值(只适用于prompt)
from selenium import webdriver
browser = webdriver.Chrome()
browser.get('...')
browser.find_element_by_xpath('...')
#切换到弹窗
alert = browser.switch_to_alert()
# 打印警告框文本
print(alert.text)
#若为alert弹窗
alert.accept()# 接受弹窗
#若为confirm弹窗
alert.accept()# 确认
alert.dismiss()# 取消
#若为prompt
alert.send_keys('11111')
alert.accept()# 输入11111并提交
alert.dismiss()# 解除警告

下拉框处理

selenium中对下拉框有专门的处理,需要用到下拉框的类Select
from selenium.webdriver.support.select import Select

方法说明
select_by_value()通过value属性选择
select_by_index()通过索引选择,从0开始
select_by_visible_text()通过可见的文本进行选择

关闭浏览器

方法说明
quit()关闭所有窗口
close()关闭单个窗口

Reference

https://blog.csdn.net/wangshufen20091651/article/details/82897199
https://blog.csdn.net/weixin_36279318/article/details/79475388
http://www.testclass.net/selenium_python/selenium3-browser-driver/
https://blog.csdn.net/u010694922/article/details/79485003
https://blog.csdn.net/chenjuan0530/article/details/79553157

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值