高级自动化测试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. 有时候页面操作后,数据可能没及时同步,需要重新刷新

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

  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. 返回到上一页面后,也可以切换到下一页,相当于浏览器左上角的右箭头按钮

  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()

切换窗口

切换窗口代码

  1. 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当前

  1. 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()

最大化代码:

  1. 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. 截屏后设置制定的保存路径+文件名称+后缀

截屏代码:

  1. 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代码:

  1. 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代码:

  1. 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. Java Web制作登录 验证码

    具体操作如下: 新建一个servlet,代码如下:标记一个WebServlet, @WebServlet(urlPatterns = {"/checkCode"}) //验证码Se ...

  2. Windows7上开启ftp服务器功能

    开启ftp服务功能   1 进入“控制面板”->“程序”->"打开或关闭Windows功能",找到“Internet信息服务”选项 2 将“Internet信息服务”选 ...

  3. CSS3 RGBA 属性高级用法

    这个属性的兼容问题比较简单,IE8已经支持这个属性,IE6和IE7也可以通过hack支持.RGBA和CSS2里的RBG属性差不多,只是RGBA属性多了一个透明度的定义,CSS3标准里对RGBA属性的解 ...

  4. Playbook使用,编写YAML

    YAML是什么? YAML是一个可读性高.用来表达数据序列的格式语言 YAML:YAML Ain't a Markup Language YAML以数据为中心,重点描述数据的关系和结构 YAML的格式 ...

  5. oracle之二数据字典表和动态性能视图

    数据字典表和动态性能视图 Oracle提供了大量的内部表,它们记录了数据库对象的更改和修正.可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表.这些内部表是由oracle维护的,可以说 ...

  6. [极客大挑战 2019]Secret File wp

    通过标题考虑可能为文件包含漏洞方面 打开网页 从页面并没任何思路,查看源代码 得到有一个跳转到./Archive_room.php的超链接,打开Archive_room.php 中央有一个secret ...

  7. js中小球碰壁反弹

    一. 在指定容器内的碰壁反弹 <!DOCTYPE HTML> <html> <head> <title></title> <meta ...

  8. PHP判断是否是微信浏览器访问的方法

    PHP判断是否是微信浏览器访问的方法 PHP判断是否是微信浏览器访问的方法 都是干货,微信开发可能需要用到,留着日后COPY. public function isWeichatBrowser() { ...

  9. 登陆页跳出iframe

    1 if(top.location.href != location.href){ 2 top.location.href = location.href; 3 }

  10. Hibernate4.3 并发控制

    一.悲观锁 悲观锁不是Hibernate的锁,而是数据库的update锁,select * from item for update.   Hibernate 就是利用这种锁机制,在查询上上锁. 悲观 ...