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获取文件ssdeep值的方法
Oct 05 Python
Python的randrange()方法使用教程
May 15 Python
Python脚本暴力破解栅栏密码
Oct 19 Python
Python制作简易注册登录系统
Dec 15 Python
python解决pandas处理缺失值为空字符串的问题
Apr 08 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
详解Python3 对象组合zip()和回退方式*zip
May 15 Python
python实现的登录与提交表单数据功能示例
Sep 25 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
python3发送request请求及查看返回结果实例
Apr 30 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
Aug 17 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模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
PHP 上传文件大小限制
2009/07/05 PHP
php中取得文件的后缀名?
2012/02/20 PHP
关于PHP 如何用 curl 读取 HTTP chunked 数据
2016/02/26 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
2014/10/11 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
基于zTree树形菜单的使用实例
2017/12/25 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
原生JavaScript实现todolist功能
2018/03/02 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
2019/04/10 Javascript
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
python3实现163邮箱SMTP发送邮件
2018/05/22 Python
python3对拉勾数据进行可视化分析的方法详解
2019/04/03 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
Linux中如何用命令创建目录
2016/12/02 面试题
汽车专业毕业生推荐信
2013/11/12 职场文书
有关爱国演讲稿
2014/05/07 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
北京故宫导游词
2015/01/31 职场文书
导游词怎么写
2015/02/04 职场文书
管理人员岗位职责
2015/02/14 职场文书
2015年全国“爱牙日”宣传活动总结
2015/03/23 职场文书
商场收银员岗位职责
2015/04/07 职场文书
大学生团日活动总结
2015/05/06 职场文书