天天看点

使用selenium模拟对浏览器的操作关于seleniumselenium快速入门Reference

关于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根目录下。

使用selenium模拟对浏览器的操作关于seleniumselenium快速入门Reference
使用selenium模拟对浏览器的操作关于seleniumselenium快速入门Reference

注意: 若浏览器的安装路径非默认路径,则需要将浏览器的安装路径添加到环境变量path中。

测试环境是否搭建成功

命令:

from selenium import webdriver
browser = webdriver.Chrome()
           

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

使用selenium模拟对浏览器的操作关于seleniumselenium快速入门Reference

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