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版的文曲星猜数字游戏代码
Sep 02 Python
python实现提取百度搜索结果的方法
May 19 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Python探索之ModelForm代码详解
Oct 26 Python
Python面向对象类的继承实例详解
Jun 27 Python
win10下tensorflow和matplotlib安装教程
Sep 19 Python
Flask配置Cors跨域的实现
Jul 12 Python
Tensorflow进行多维矩阵的拆分与拼接实例
Feb 07 Python
如何搭建pytorch环境的方法步骤
May 06 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
Jan 15 Python
numpy数据类型dtype转换实现
Apr 24 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
第九节 绑定 [9]
2006/10/09 PHP
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
2012/04/09 PHP
Win下如何安装PHP的APC拓展
2013/08/07 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php获取从百度、谷歌等搜索引擎进入网站关键词的方法
2015/07/08 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
php组合排序简单实现方法
2016/10/15 PHP
window.open的功能全解析
2006/10/10 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
jQuery中jqGrid分页实现代码
2011/11/04 Javascript
全面兼容的javascript时间格式化函数(比较实用)
2014/05/14 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
详细解读AngularJS中的表单验证编程
2015/06/19 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
nodejs批量下载图片的实现方法
2017/05/19 NodeJs
详解vuex中action何时完成以及如何正确调用dispatch的思考
2019/01/21 Javascript
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Python3实现定时任务的四种方式
2019/06/03 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python实现简单井字棋小游戏
2020/03/05 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
python实现扫雷小游戏
2020/04/24 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
英国皇室御用百货:福南梅森(Fortnum & Mason)
2017/12/03 全球购物
班长岗位职责
2013/11/10 职场文书
《恐龙》教学反思
2014/04/27 职场文书
毕业论文评语大全
2014/04/29 职场文书
工作所在部门证明
2014/09/21 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
新娘婚礼致辞
2015/07/27 职场文书