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中使用PIPE操作Linux管道
Feb 04 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python2随机数列生成器简单实例
Sep 04 Python
python pandas 组内排序、单组排序、标号的实例
Apr 12 Python
Python数据抓取爬虫代理防封IP方法
Dec 23 Python
Python常见数字运算操作实例小结
Mar 22 Python
Python如何实现转换URL详解
Jul 02 Python
Django框架模型简单介绍与使用分析
Jul 18 Python
简单了解python中的与或非运算
Sep 18 Python
python 普通克里金(Kriging)法的实现
Dec 19 Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 Python
Python pygame实现中国象棋单机版源码
Jun 20 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 程序员应该使用的10个组件
2009/10/31 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
PHP实现图片压缩
2020/09/09 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
Laravel 集成微信用户登录和绑定的实现
2019/12/27 PHP
鼠标事件延时切换插件
2011/03/12 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
jquery鼠标放上去显示悬浮层即弹出定位的div层
2014/04/25 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
JS简单判断是否在微信浏览器打开的方法示例
2019/01/08 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
vue指令做滚动加载和监听等
2019/05/26 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
PyQt5 pyqt多线程操作入门
2018/05/05 Python
[原创]Python入门教程5. 字典基本操作【定义、运算、常用函数】
2018/11/01 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
python脚本和网页有何区别
2020/07/02 Python
python类共享变量操作
2020/09/03 Python
大学运动会通讯稿
2014/01/28 职场文书
校园活动宣传方案
2014/03/28 职场文书
穷人该怎么创业?谨记以下几点
2019/07/11 职场文书
CocosCreator如何实现划过的位置显示纹理
2021/04/14 Javascript
详解Python为什么不用设计模式
2021/06/24 Python
用PYTHON去计算88键钢琴的琴键频率和音高
2022/04/10 Python
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL