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在控制台输出进度条的方法
Jun 20 Python
详解Django中的权限和组以及消息
Jul 23 Python
详解Python pygame安装过程笔记
Jun 05 Python
python flask实现分页效果
Jun 27 Python
Pycharm技巧之代码跳转该如何回退
Jul 16 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
解决阿里云邮件发送不能使用25端口问题
Aug 07 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
浅析PyCharm 的初始设置(知道)
Oct 12 Python
如何使用 Flask 做一个评论系统
Nov 27 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下使用无限生命期Session的方法
2007/03/16 PHP
php递归列出所有文件和目录的代码
2008/09/10 PHP
php 正则表达式小结
2009/08/31 PHP
基于PHP文件操作的详解
2013/06/05 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
ThinkPHP的URL重写问题
2014/06/22 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
JavaScript将Table导出到Excel实现思路及代码
2013/03/13 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
JS查找字符串中出现次数最多的字符
2016/09/05 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
2017/01/18 Javascript
H5上传本地图片并预览功能
2017/05/08 Javascript
Vue.js中使用iView日期选择器并设置开始时间结束时间校验功能
2018/08/12 Javascript
Vue路由管理器Vue-router的使用方法详解
2020/02/05 Javascript
Vue实现跑马灯效果
2020/05/25 Javascript
基于javascript处理nginx请求过程详解
2020/07/07 Javascript
react ant Design手动设置表单的值操作
2020/10/31 Javascript
python实现最大优先队列
2019/08/29 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
python next()和iter()函数原理解析
2020/02/07 Python
html5 canvas 画图教程案例分析
2012/11/23 HTML / CSS
现代生活方式的家具和装饰:Dot & Bo
2018/12/26 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
优秀毕业生求职推荐信范文
2013/11/21 职场文书
2014国庆节主题活动方案:快乐的国庆节
2014/09/16 职场文书
团队会宣传标语
2014/10/09 职场文书
店面出租协议书范本
2014/11/28 职场文书
郭明义电影观后感
2015/06/08 职场文书
妇产科护理心得体会
2016/01/22 职场文书
学习计划是什么
2019/04/30 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js