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写xml文件的操作实例
Oct 05 Python
详解如何使用Python编写vim插件
Nov 28 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 Python
Python+Pandas 获取数据库并加入DataFrame的实例
Jul 25 Python
对TensorFlow的assign赋值用法详解
Jul 30 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
Python二叉树的镜像转换实现方法示例
Mar 06 Python
Python编程快速上手——Excel到CSV的转换程序案例分析
Feb 28 Python
keras model.fit 解决validation_spilt=num 的问题
Jun 19 Python
如何用Python徒手写线性回归
Jan 25 Python
python中numpy数组与list相互转换实例方法
Jan 29 Python
Python实现简单的2048小游戏
Mar 01 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
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
两个强悍的php 图像处理类1
2009/06/15 PHP
php缓冲 output_buffering的使用详解
2013/06/13 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
YII框架http缓存操作示例
2019/04/29 PHP
PHP判断函数是否被定义的方法
2019/06/21 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
javascript实现数独解法
2015/03/14 Javascript
前端设计师们最常用的JS代码汇总
2016/09/25 Javascript
jquery.uploadView 实现图片预览上传功能
2017/08/10 jQuery
简单的网页广告特效实例
2017/08/19 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
JavaScript判断数据类型有几种方法及区别介绍
2020/09/02 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
vue 实现基础组件的自动化全局注册
2020/12/25 Vue.js
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python实现发送和获取手机短信验证码
2016/01/15 Python
tensorflow 输出权重到csv或txt的实例
2018/06/14 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
使用Python制作简单的小程序IP查看器功能
2019/04/16 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Python中私有属性的定义方式
2020/03/05 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
python环境搭建和pycharm的安装配置及汉化详细教程(零基础小白版)
2020/08/19 Python
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
会计实习自我鉴定
2013/12/04 职场文书
小学体育组工作总结
2015/08/13 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
实习报告怎么写
2019/06/20 职场文书
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android