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中mechanize库的简单使用示例
Jan 10 Python
Python的subprocess模块总结
Nov 07 Python
在Python中操作字符串之rstrip()方法的使用
May 19 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
python 自动去除空行的实例
Jul 24 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
在Python中调用Ping命令,批量IP的方法
Jan 26 Python
python连接PostgreSQL过程解析
Feb 09 Python
Django如何使用redis作为缓存
May 21 Python
Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头
Oct 22 Python
python爬虫多次请求超时的几种重试方法(6种)
Dec 01 Python
python编写函数注意事项总结
Mar 29 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抓即时股票信息
2006/10/09 PHP
基于php判断客户端类型
2016/10/14 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
浅谈javascript的数据类型检测
2010/07/10 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
JavaScript中switch语句的用法详解
2015/06/03 Javascript
jquery合并表格中相同文本的相邻单元格
2015/07/17 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
JS模拟按钮点击功能的方法
2015/12/22 Javascript
JS原型链怎么理解
2016/06/27 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
Python数组条件过滤filter函数使用示例
2014/07/22 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
基于Python和Scikit-Learn的机器学习探索
2017/10/16 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python定时发送天气预报邮件代码实例
2019/09/09 Python
python 公共方法汇总解析
2019/09/16 Python
Python with关键字,上下文管理器,@contextmanager文件操作示例
2019/10/17 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
python能做哪些生活有趣的事情
2020/09/09 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
OnePlus加拿大官网:中国国际化手机品牌
2020/10/13 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
车辆工程专业求职信
2014/04/28 职场文书
安全生产月活动总结
2014/05/04 职场文书
出纳年终工作总结2014
2014/12/05 职场文书
婚庆开业庆典主持词
2015/06/30 职场文书
2015年清剿火患专项行动工作总结
2015/07/27 职场文书
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL