高级自动化测试python+selenium教程手册

——高级讲师肖sir

 1 webdriver

环境搭建好了,我们正式学习 selenium 的 webdriver 框架,它不像 QTP 之类的有 GUI 界面的可视化工具,是webdriver 框架的 API。

2.1.1 打开网页

注解:我们用谷歌浏览器

# from selenium import webdriver    #导入一个selenium 库中导入webdriver模块
'''
在Python中做UI自动化:selenium'''
# 创建一个drvier对象用来调用打开浏览器,对浏览器实现操作
# driver =webdriver.Chrome()  #主讲谷歌浏览器
#driver =webdriver.Ie()
#driver =webdriver.firefox()
'''通过调用webdrvier.来引用对应的浏览器,生成一个浏览器对象
注意事项:webdrvier. 点后面的浏览器名称不要自己输入用联想
还有自己添加一个英文的小括号() 小括号的作用是:把它声明成为
一个匿名对象 那么当前的drvier就是一个浏览器驱动对象,可以用它来
对对应的浏览器实现操作的动作'''
# UI自动化所有的调用都必须在最前面加上一个drvier对象
# 通过对象来打开谷歌浏览器且输入网址
# driver.get('http://www.baidu.com')
# 通过对象调用get方法来打开一个网站URL

2.1.2 设置休眠

time.sleep(2)

  1. 由于打开百度网址后,页面加载需要几秒钟,所以最好等到页面加载完成后再继续下一步操作
    1. 导入 time 模块,time 模块是 Python 自带的,所以无需下载

设置等待时间,单位是秒(s),时间值可以是小数也可以是整数

1.强制等待 sleep(xx)

2.隐性等待 implicitly_wait(xx)

3.显性等待 WebDriverWait

 

2.1.3 页面刷新

driver.refresh()

  1. 有时候页面操作后,数据可能没及时同步,需要重新刷新

这里可以模拟刷新页面操作,相当于浏览器输入框后面的刷新按钮

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
# driver.get('http://www.baidu.com') #直接打开
url ='http://www.baidu.com'
driver.maximize_window()
driver.get(url) #通过引用变量来进入百度
time.sleep(2)
# '''用处:让元素定位更加的准确'''
driver.get('http://gz.duoceshi.cn')
driver.maximize_window() #窗口实现最大化显示100%
time.sleep(2)
driver.back()

2.1.4 页面切换

返回和切换

driver.back()  #返回上一页

driver.forward() #切换到下一页

  1. 当在一个浏览器打开两个页面后,想返回上一页面,相当于浏览器左上角的左箭头按钮
    1. 返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
# driver.get('http://www.baidu.com') #直接打开
url ='http://www.baidu.com'
driver.maximize_window()
driver.get(url) #通过引用变量来进入百度
time.sleep(2)
# '''用处:让元素定位更加的准确'''
driver.get('http://gz.duoceshi.cn')
driver.maximize_window() #窗口实现最大化显示100%
time.sleep(2)
driver.back()
time.sleep(2)
driver.forward()

切换窗口

切换窗口代码

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')#打开第一个网址
driver.maximize_window()#最大化
time.sleep(3)
window='window.open("http://www.jd.com")'#通过变量来接收
driver.execute_script(window)#执行脚本

2.1.5 设置窗口大小

 

  1. 可以设置浏览器窗口大小,如设置窗口大小为手机分辨率 540*960

2、窗口最大化窗口

格式:

def set_window_size(self, width, height, windowHandle='current'):

windowHandle当前句柄,windowHandle当前

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')
driver.set_window_size(200,200)
time.sleep(2)
driver.close()

最大化代码:

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')
driver.maximize_window()

2.1.6 截屏

driver.get_screenshot_as_file(保存路径+图片名称)

 

  1. 打开网站之后,也可以对屏幕截屏 
  2. 截屏后设置制定的保存路径+文件名称+后缀

截屏代码:

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')
driver.maximize_window()
time.sleep(2)
driver.get_screenshot_as_file(r'D:\bao\pp.png')

2.1.7 退出

 

  1. 退出有两种方式,一种是 close;另外一种是 quit
  1. close 用于关闭当前窗口,当打开的窗口较多时,就可以用 close 关闭部分窗口
  1. quit 用于结束进程,关闭所有的窗口

3、最后结束测试,要用 quit,quit 可以回收 c 盘的临时文件

quit代码:

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')
driver.maximize_window()
time.sleep(2)
driver.quit()

close代码:

from selenium import webdriver
import time #时间模块 sleep()线程等待
driver =webdriver.Chrome()
driver.get('http://gz.duoceshi.cn')
driver.maximize_window()
time.sleep(2)
driver.close()

多测师讲解_ 高级自动化测试selenium_001基本学习的更多相关文章

  1. 多测师讲解 _接口自动化框架设计_高级讲师肖sir

    背景:因为把传入接口参数.组建测试用例.执行测试用例和发送报告,都放入一个.py文件对于接口的使用非常不灵活就需要数据和接口业务进行分离让代码之间的 耦合性降低.和实现接口的分层管理,所以需要对代码进 ...

  2. 多测师讲解 _接口自动化框架设计分层思想(001)_高级讲师肖sir

    第一层: 第二层:调用接口层 VOQGWBZYNBOAVZGE

  3. 多测师讲解 _教师(必备)_高级讲师肖sir

    教学心得1.备课要充分,防止第二天上课会出现一些突发情况2.上课要有自己的思路,不一定要按照课件上的讲3.上课气氛比较沉闷的时候,可以适当的开下玩笑,缓解大家的学习氛围4.讲课的时候提醒学员不要做笔记 ...

  4. 第一月多测师讲解_ linux_vim命令_004

    一. vi/vim 编辑器共分为三种模式: 命令模式(Command mode),"ESC" 输入模式(Insert mode) 底线命令模式(Last line mode) 命令 ...

  5. 多测师讲解_肖sir _rf报错归纳(1):

    错误一: 报错原因:文件格式 解决方案: 修改文件格式,将txt改成robot格式   错误二: rf 运行以后出现乱码现象 解决方案: 打开python的安装路径下:C:\python37\Lib\ ...

  6. 多测师讲解pyhon__hashlib_高级讲师肖sir

    一.加密,加密成16进制的字符串 # import hashlib # 导入hashlib模块# md = hashlib.md5() # 获取一个md5加密算法对象# md.update('需要加密 ...

  7. 多测师讲解自动化测试 _RF封装_(三层模式)高级讲师肖sir

    rf自动化:分层作用: 1.项目----有重复的流程(借款-登录,出借-登录) 2.借款--登录(8个流程)机器人:案例层(用例)写在机器人中,1个机器人=1条用例 分三个层次: 1.案例层(存放用例 ...

  8. 多测师讲解自动化测试 _RF关键字001_(上)_高级讲师肖sir

    讲解案例1: Open Browser http://www.baidu.com gc #打开浏览器 Maximize Browser Window #窗口最大化 sleep 2 #线程等待2秒 In ...

  9. 多测师讲解自动化测试_rf节课内容_高级讲师肖sir

    *** Settings ***Library Selenium2LibraryLibrary OperatingSystem *** Variables ***${name} zhangsan@{l ...

随机推荐

  1. basicInterpreter1.01 支持分支语句

    源码:https://files.cnblogs.com/files/heyang78/basicInterpreter-20200531-1.rar 输入: count= print(count) ...

  2. 一句Delete..In.. 删除语句的优化

    实验环境: # 类别 版本 1 操作系统 Win10 2 数据库 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit P ...

  3. 20190923-02Linux文件目录类 000 010

    pwd 显示当前工作目录的绝对路径 pwd:print working directory 打印工作目录 1.基本语法 pwd (功能描述:显示当前工作目录的绝对路径) 2.案例实操 (1)显示当前工 ...

  4. Spring-代理模式

    代理模式 目录 代理模式 1. 代理模式的分类 2. 静态代理 1. 角色分析 2. 代码步骤 3. 代理的好处 4. 进一步理解 3. 动态代理 1. 角色分析 2. 对动态代理的两个关键类的理解 ...

  5. git代码管理——克隆项目到本地仓库及上传本地项目到仓库

    一.克隆项目到本地仓库 1.github网站操作 1.1 登录github 首先创建一个仓库,点击“New” 1.2 输入仓库信息 1.3 创建完成后,会多出一个仓库 2.安装git客户端 2.1 安 ...

  6. Pandas 中的遍历与并行处理

    使用 pandas 处理数据时,遍历和并行处理是比较常见的操作了本文总结了几种不同样式的操作和并行处理方法. 1. 准备示例数据 import pandas as pd import numpy as ...

  7. goto 无条件跳转

    0. 基本模型 goto 顾言思义,是跳转的意思. goto 后接一个标签,这个标签的意义是告诉 Go程序下一步要执行哪里的代码. 所以这个标签如何放置,放置在哪里,是 goto 里最需要注意的. g ...

  8. php基础复习

    基础捡漏: 1.短标记<??> 通过修改ini文件的short_open_tag或编译时 --enable-short-tags 可用 不推荐使用. 2.?>默认有隐藏分号结束,而文 ...

  9. PHP正则表达式核心技术完全详解 第1节

    作者:极客小俊 一个专注于web技术的80后 我不用拼过聪明人,我只需要拼过那些懒人 我就一定会超越大部分人! CSDN@极客小俊,原创文章, B站技术分享 B站视频 : Bilibili.com 个 ...

  10. Akka Netty 比较

    从Akka出现背景来说,它是基于Actor的RPC通信系统,它的核心概念也是Message,它是基于协程的,性能不容置疑:基于scala的偏函数,易用性也没有话说,但是它毕竟只是RPC通信,无法适用大 ...