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删除nginx缓存文件示例(python文件操作)
Mar 26 Python
python实现简单购物商城
May 21 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
Python之批量创建文件的实例讲解
May 10 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
将tensorflow模型打包成PB文件及PB文件读取方式
Jan 23 Python
利用python对mysql表做全局模糊搜索并分页实例
Jul 12 Python
python代码实现猜拳小游戏
Nov 30 Python
pytest配置文件pytest.ini的详细使用
Apr 17 Python
Django项目如何获得SSL证书与配置HTTPS
Apr 30 Python
拒绝盗图!教你怎么用python给图片加水印
Jun 04 Python
python树莓派通过队列实现进程交互的程序分析
Jul 04 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标签云的实现代码
2012/10/10 PHP
php访问数组最后一个元素的函数end()用法
2015/03/18 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
scrollWidth,clientWidth,offsetWidth的区别
2015/01/13 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
2016/01/06 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
javascript 闭包详解及简单实例应用
2016/12/31 Javascript
vue内置指令详解
2018/04/03 Javascript
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
Vue实现日历小插件
2019/06/26 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
详解Nuxt内导航栏的两种实现方式
2020/04/16 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
[45:44]完美世界DOTA2联赛PWL S2 FTD vs PXG 第一场 11.27
2020/12/01 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
浅谈python类属性的访问、设置和删除方法
2016/07/25 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
Python爬虫如何破解JS加密的Cookie
2020/11/19 Python
电子信息专业学生自荐信
2013/11/09 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
党在我心中演讲稿
2014/09/02 职场文书
《地震中的父与子》教学反思
2016/02/16 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
python垃圾回收机制原理分析
2022/04/13 Python