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的Tornado框架的HTTP客户端的教程
Apr 24 Python
深入讲解Python编程中的字符串
Oct 14 Python
python实现文本去重且不打乱原本顺序
Jan 26 Python
使用python绘制二元函数图像的实例
Feb 12 Python
Python基于Hypothesis测试库生成测试数据
Apr 29 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
python 中的9个实用技巧,助你提高开发效率
Aug 30 Python
Python图像读写方法对比
Nov 16 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
python unittest单元测试的步骤分析
Aug 02 Python
在python中读取和写入CSV文件详情
Jun 28 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命名空间(Namespace)的使用详解
2013/05/04 PHP
PHP exif扩展方法开启详解
2014/07/28 PHP
ThinkPHP里用U方法调用js文件实例
2015/06/18 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
Aster vs KG BO3 第二场2.19
2021/03/10 DOTA
基于jQuery的自动完成插件
2011/02/03 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
网站内容禁止复制和粘贴、另存为的js代码
2014/02/26 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
2016/01/15 Javascript
轮播图组件js代码
2016/08/08 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
Express的HTTP重定向到HTTPS的方法
2018/06/06 Javascript
微信小程序实现日历功能
2018/11/27 Javascript
VUE+elementui面包屑实现动态路由详解
2019/11/04 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
python中logging包的使用总结
2018/02/28 Python
MxNet预训练模型到Pytorch模型的转换方式
2020/05/25 Python
Python学习之路之pycharm的第一个项目搭建过程
2020/06/18 Python
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
说出ArrayList,Vector, LinkedList的存储性能和特性
2015/01/04 面试题
南京某软件公司的.net面试题
2015/11/30 面试题
珍爱生命演讲稿
2014/05/10 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android