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网页解析利器BeautifulSoup安装使用介绍
Mar 17 Python
在Python的Django框架中为代码添加注释的方法
Jul 16 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
Python下的常用下载安装工具pip的安装方法
Nov 13 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
Django读取Mysql数据并显示在前端的实例
May 27 Python
python求最大连续子数组的和
Jul 07 Python
神经网络相关之基础概念的讲解
Dec 29 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
Aug 12 Python
python实现多进程通信实例分析
Sep 01 Python
Python使用Slider组件实现调整曲线参数功能示例
Sep 06 Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 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
QQ互联一键登录审核不通过的解决方案
2014/09/10 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
基于jquery1.4.2的仿flash超炫焦点图播放效果
2010/04/20 Javascript
IE6-IE9中tbody的innerHTML不能赋值的解决方法
2014/09/26 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
javascript原型模式用法实例详解
2015/06/04 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
Javascript 对cookie操作详解及实例
2016/12/29 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
JS实现密码框效果
2020/09/10 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
进一步探究Python中的正则表达式
2015/04/28 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
python操作redis方法总结
2018/06/06 Python
Python实现的调用C语言函数功能简单实例
2019/03/13 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
2019/07/03 Python
python通过TimedRotatingFileHandler按时间切割日志
2019/07/17 Python
python 并发编程 非阻塞IO模型原理解析
2019/08/20 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
NULL是什么,它是怎么定义的
2015/05/09 面试题
学习党的群众路线对照检查材料
2014/09/29 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
故意伤害辩护词
2015/05/21 职场文书
银行工作心得体会范文
2016/01/23 职场文书
python开发飞机大战游戏
2021/07/15 Python
mysql 子查询的使用
2022/04/28 MySQL