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文件处理
Feb 29 Python
python正则表达式之作业计算器
Mar 18 Python
python 信息同时输出到控制台与文件的实例讲解
May 11 Python
Tensorflow中使用tfrecord方式读取数据的方法
Jun 19 Python
python判断设备是否联网的方法
Jun 29 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
Python流行ORM框架sqlalchemy安装与使用教程
Jun 04 Python
Python面向对象之Web静态服务器
Sep 03 Python
Python hashlib加密模块常用方法解析
Dec 18 Python
基于PyQT实现区分左键双击和单击
May 19 Python
解决python3输入的坑——input()
Dec 05 Python
python三子棋游戏
May 04 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 动态执行带有参数的类方法
2009/04/10 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
php去掉文件前几行的方法
2015/07/29 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
JavaScript用Number方法实现string转int
2014/05/13 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
javascript学习指南之回调问题
2016/04/23 Javascript
jQuery判断元素是否显示 是否隐藏的简单实现代码
2016/05/19 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
[js高手之路]寄生组合式继承的优势详解
2017/08/28 Javascript
VueCli3.0中集成MockApi的方法示例
2019/07/05 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
使用Vue调取接口,并渲染数据的示例代码
2019/10/28 Javascript
es6数组之扩展运算符操作实例分析
2020/04/25 Javascript
vue使用Sass时报错问题的解决方法
2020/10/14 Javascript
探索node之事件循环的实现
2020/10/30 Javascript
[40:03]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
python中星号变量的几种特殊用法
2016/09/07 Python
详解python中@的用法
2019/03/27 Python
python实现人工智能Ai抠图功能
2019/09/05 Python
Python Print实现在输出中插入变量的例子
2019/12/25 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
Scrapy模拟登录赶集网的实现代码
2020/07/07 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
假日旅行社实习自我鉴定
2013/09/24 职场文书
城市规划毕业生求职信
2013/10/10 职场文书
机电专业个人求职信范文
2013/12/30 职场文书
市优秀教师事迹材料
2014/02/05 职场文书
委托公证书
2014/04/08 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
创业计划书之香辣虾火锅
2019/09/23 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS