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操作MongoDB基础知识
Nov 01 Python
Python实现的科学计算器功能示例
Aug 04 Python
Python计算斗牛游戏概率算法实例分析
Sep 26 Python
python如何对实例属性进行类型检查
Mar 20 Python
对numpy中的数组条件筛选功能详解
Jul 02 Python
详解Appium+Python之生成html测试报告
Jan 04 Python
python调用接口的4种方式代码实例
Nov 19 Python
Jupyter 无法下载文件夹如何实现曲线救国
Apr 22 Python
python实现从ftp上下载文件的实例方法
Jul 19 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
python实现双向链表原理
May 25 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
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP实现导出excel数据的类库用法示例
2016/10/15 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
javascript编程起步(第七课)
2007/02/27 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
学习JavaScript的最佳方法分享
2011/10/21 Javascript
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
JSON字符串转JSON对象
2015/07/31 Javascript
js+css实现的圆角边框TAB选项卡滑动门代码分享(2款)
2015/08/26 Javascript
简单分析javascript中的函数
2016/09/10 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
Vue中保存数据到磁盘文件的方法
2018/09/06 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
利用python3随机生成中文字符的实现方法
2017/11/24 Python
python爬取m3u8连接的视频
2018/02/28 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python中使用iterrows()对dataframe进行遍历的实例
2018/06/09 Python
Django框架模板注入操作示例【变量传递到模板】
2018/12/19 Python
Python中zip()函数的解释和可视化(实例详解)
2020/02/16 Python
Python urlencode和unquote函数使用实例解析
2020/03/31 Python
Python中SQLite如何使用
2020/05/27 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
英国高街奥特莱斯:Highstreet Outlet
2019/11/21 全球购物
党员的自我评价范文
2014/01/02 职场文书
酒店周年庆活动方案
2014/08/21 职场文书
学前班语言教学计划
2015/01/20 职场文书
浅谈JS的二进制家族
2021/05/09 Javascript