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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
深入了解Python数据类型之列表
Jun 24 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
Apr 27 Python
基于Django与ajax之间的json传输方法
May 29 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
Python的形参和实参使用方式
Dec 24 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
May 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和ACCESS写聊天室(一)
2006/10/09 PHP
php 函数中使用static的说明
2012/06/01 PHP
php-beanstalkd消息队列类实例分享
2017/07/19 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Open and Print a Word Document
2007/06/15 Javascript
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
Javascript排序算法之合并排序(归并排序)的2个例子
2014/04/04 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
[45:59]完美世界DOTA2联赛PWL S2 FTD vs GXR 第二场 11.22
2020/11/24 DOTA
python3制作捧腹网段子页爬虫
2017/02/12 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
女士和男士时尚鞋在线购物:Shoespie
2019/02/28 全球购物
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
介绍一下Java中的Class类
2015/04/10 面试题
AJAX的优缺点都有什么
2015/08/18 面试题
final, finally, finalize的区别
2012/03/01 面试题
小学少先队活动方案
2014/02/18 职场文书
教学质量评估实施方案
2014/03/17 职场文书
党员干部承诺书
2014/03/25 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
人事代理委托书
2014/09/27 职场文书
学期个人工作总结
2015/02/13 职场文书
英雄儿女观后感
2015/06/09 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript