Selenium自动化测试工具使用方法汇总


Posted in Python onJune 12, 2020

1、设置无头浏览器模式

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('- -headless')
chrome_options.add_argument('- -disable-gpu')
class XX(object):
self.driver = webdriver.Chrome(chrome_options=chrome_options)# 设置无头

2、设置屏幕尺寸

self.driver.maximize_window() # 最大
self.driver.get_window_size() # 获取窗口尺寸
self.driver.set_window_size(1296, 1000) # 指定像素 宽1296 高1000

3、通过xpath获取元素并单击

element = self.driver.find_elements_by_xpath('//*[@id="disabled"]/li[3]/a') # element是获取的元素列表
element [0].click()

4、关闭单个窗口

# 关闭单个窗口
self.driver.close()

5、退出driver程序,关闭浏览器

driver.quit()

6、获取input标签 输入文字 执行回车

from selenium.webdriver.common.keys import Keys
# 输入主机名:spupa01bat04 回车查询
element = self.driver.find_elements_by_xpath(input_enter_xpath)[0]
element.send_keys('spupa01bat04')
element.send_keys(Keys.ENTER)

7、执行双击

from selenium import webdriver
from selenium.webdriver import ActionChains # 该类可执行鼠标动作:双击 拖拽等
self.driver = webdriver.Chrome()
self.acobj = ActionChains(self.driver)
checkName = '风险'
# '" + checkName + "'是向标签xpath字符串路经引入的变量
Xpath = "//span[text()='" + checkName + "']/../../..//span[text()='FSCapacity']"
el_01 = self.driver.find_elements_by_xpath(Xpath)[0] # 获取元素
self.acobj.double_click(el_01).perform() # 执行双击
self.driver.implicitly_wait(20)

8、执行等待

# 隐式等待:设置一个等待时间,如果在这个等待时间内,网页加载完成,则执行下一步;否则一直等待时间截止,然后再执行下一步。这样也就会有个弊端,程序会一直等待整个页面加载完成,直到超时,但有时候我需要的那个元素早就加载完成了,只是页面上有个别其他元素加载特别慢,我仍要等待页面全部加载完成才能执行下一步。
self.driver.implicitly_wait(10)
# 显示等待:配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。它主要的意思就是:程序每隔xx检查一次,如果条件成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException
from selenium.webdriver.support.wait import WebDriverWait
# 超时时间为30秒,每0.2秒检查1次,直到class="tt"的元素出现
text = WebDriverWait(driver,30,0.2).until(lambda x:x.find_element_by_css_selector(".tt")).text
print(text)
# 强制等待:简单粗暴效率低
from time import sleep
sleep(5)

9、浏览器全屏截图保存到指定路径

png01_path = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'resource', 'png_codes.png')
self.driver.save_screenshot(png01_path)

10、select下拉框的选值处理

from selenium.webdriver.support.select import Select
# 定位下拉框对象
select_element = self.driver.find_elements_by_xpath(select_xpath)[0]
# 构建下拉框对象
sel_obj = Select(select_element)
# 通过value值进行选择:一周
sel_obj.select_by_value('168h')

11、# 浏览器位置

# 获取浏览器位置
position = driver.get_window_position()
print(position)
# 设置浏览器位置
driver.set_window_position(100, 100)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python脚本实现分析dns日志并对受访域名排行
Sep 18 Python
Python标准库之sqlite3使用实例
Nov 25 Python
Python实现比较两个文件夹中代码变化的方法
Jul 10 Python
Python使用内置json模块解析json格式数据的方法
Jul 20 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
PyQt5下拉式复选框QComboCheckBox的实例
Jun 25 Python
Python Pandas数据结构简单介绍
Jul 03 Python
python实现人工智能Ai抠图功能
Sep 05 Python
python科学计算之scipy——optimize用法
Nov 25 Python
Python 音频生成器的实现示例
Dec 24 Python
Python如何绘制日历图和热力图
Aug 07 Python
Pandas数据结构之Series的使用
Mar 31 Python
Python使用socketServer包搭建简易服务器过程详解
Jun 12 #Python
Django之腾讯云短信的实现
Jun 12 #Python
python相对企业语言优势在哪
Jun 12 #Python
keras实现基于孪生网络的图片相似度计算方式
Jun 11 #Python
为什么说python适合写爬虫
Jun 11 #Python
python新手学习使用库
Jun 11 #Python
keras实现多种分类网络的方式
Jun 11 #Python
You might like
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
php有效防止图片盗用、盗链的两种方法
2016/11/01 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
WHOOPS PHP调试库的使用
2017/09/29 PHP
php+mysql开发的最简单在线题库(在线做题系统)完整案例
2019/03/30 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
jQuery 树形结构的选择器
2010/02/15 Javascript
JSON 和 JavaScript eval使用说明
2010/06/13 Javascript
seajs1.3.0源码解析之module依赖有序加载
2012/11/07 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JS父页面与子页面相互传值方法
2014/03/05 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
2014/12/05 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
jQuery+Ajax+PHP+Mysql实现分页显示数据实例讲解
2015/09/27 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
Android应用开发中Action bar编写的入门教程
2016/02/26 Python
Python3数据库操作包pymysql的操作方法
2018/07/16 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
mac系统下Redis安装和使用步骤详解
2019/07/09 Python
python绘图模块matplotlib示例详解
2019/07/26 Python
解决torch.autograd.backward中的参数问题
2020/01/07 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Django URL参数Template反向解析
2020/11/24 Python
使用pandas读取表格数据并进行单行数据拼接的详细教程
2021/03/03 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
HTML5开发动态音频图的实现
2020/07/02 HTML / CSS
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
银行批评与自我批评
2014/02/10 职场文书
Go语言带缓冲的通道实现
2021/04/26 Golang
如何利用js在两个html窗口间通信
2021/04/27 Javascript