前言

Selenium是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作。

在AirtestIDE中,开发者也给我们提供了使用Selenium的窗口。不过使用的框架是Airtest-Selenium框架。Airtest-Selenium是对selenium的python库做的一层封装,它添加了部分图像识别的接口,也可以生成网页版测试报告。

本文将借助IDE上的Selenium窗口,来给大家讲解在浏览器上进行自动化测试的实战。

IDE中的Selenium窗口

在AirtestIDE中调出Selenium的窗口

默认情况下,IDE没有并显示Selenium的窗口,所以我们需要在IDE顶部的窗口菜单下,把Selenium Window勾选上,勾选之后Selenium的窗口才会显示在IDE界面的左侧。

插入初始代码的快捷按钮

Selenium Window给我们提供了一些常用的按钮,比如点击窗口下类似地球的按钮,会自动帮我们在脚本编辑窗口插入一些初始化代码:

插入代码之前,我们需要在脚本窗口弹出的黄色提供框中,选择Yes允许插入代码:

这样,脚本编辑窗就会自动插入如下代码:

# 引入selenium的webdriver模块from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom airtest_selenium.proxy import WebChrome

#创建一个实例,代码运行到这里,会打开一个chrome浏览器driver = WebChrome()driver.implicitly_wait(20)

需要注意的是,如果是首次使用这个按钮,IDE会弹窗提示需要设置谷歌浏览器的路径:

这时我们就需要先到选项--设置中,找到Selenium那部分内容,然后把chrome的路径设置好,才能正常插入上述代码。

Selenium的常用方法

打开指定网址

我们以打开百度首页为例子:

driver.get("https://www.baidu.com/")

driver.get() 方法会在浏览器中打开一个指定的网址,给它传入网址地址即可。

最大化窗口
driver.maximize_window()
关闭窗口/浏览器
# 关闭当前窗口,如果浏览器此时只有1个窗口,浏览器也会被关闭driver.close()

# 退出驱动关闭所有窗口driver.quit()

Airtest-Selenium简介

上文我们提到Airtest-Selenium是基于Selenium语法的,但是Airtest的开发者们还另外封装了如下方法:

图像识别接口

Airtest-Selenium对图像识别的封装有两个接口,图像识别点击和图像识别断言:

①点击Selenium Window下方的airtest_touch按钮

在浏览器页面上截取你想要点击位置的图片,双击完成截图,脚本编辑窗口会自动生成1条图像识别点击的脚本

driver.airtest_touch(Template(r"tpl1582031994893.png", record_pos=(8.99, 5.23), resolution=(100, 100)))

②点击Selenium Window下方的assert_template按钮

在浏览器页面上截取你想要进行断言的图片,双击完成截图,脚本编辑窗口会自动生成1条图像识别断言脚本

driver.assert_template(Template(r"tpl1582032716811.png", record_pos=(0.51, 1.315), resolution=(100, 100)), "成功打开airlab官网")

关于Selenium更多的断言实例,详看我们之前的推文“测试同学都应该知道的断言知识...” 。

值得注意的是,这两个接口是基于Airtest框架的图像识别封装,如果图像脚本运行时在网页中找不到对应图像,会抛出Target not found on screen的异常。

多标签页录制

selenium提供了切换标签页的接口。

driver.switch_to.window(driver.window_handles[number])

这个语句执行后,可以切换到第number个打开的标签页。但是对于用户来说,这个接口不是那么好理解与调用,因为这样需要记住标签打开的顺序。

而大部分时候,切换标签页的操作一般都出现在:打开新窗口、关闭标签页这两种情况下。因此,Airtset-Selenium封装了两个接口:

driver.switch_to_new_tab()driver.switch_to_previous_tab()

在这个接口内部,Airtest-Selenium维护了标签页的组织结构。用户只需在打开新标签页时,调用switch_to_new_tab

另外在结束当前标签页时,回到上一个标签页时,调用switch_to_previous_tab()即可,不再需要去考虑当前是第几个这样之类的问题。

生成报告

被Airtest-Selenium封装的接口,运行过后都会生成对应的报告,在AirtestIDE中可以直接点击生成报告按钮,即可查看对应的报告内容。

小结

我们以1个小的实战案例来总结今天讲述的内容:

# -*- encoding=utf8 -*-__author__ = "19617"

from airtest.core.api import *

from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom airtest_selenium.proxy import WebChromedriver = WebChrome()driver.implicitly_wait(20)

driver.get("https://airlab-gl.163.com/b2b")

driver.maximize_window()

driver.assert_template(Template(r"tpl1582032716811.png", record_pos=(0.51, 1.315), resolution=(100, 100)), "成功打开airlab官网")

driver.airtest_touch(Template(r"tpl1582034527805.png", record_pos=(8.975, 5.765), resolution=(100, 100)))

driver.switch_to_new_tab()

driver.switch_to_previous_tab()

driver.quit()

预告

Selenium快速上手实战 | 下篇

将给大家讲述如下内容:

① chrome调试工具实战② Selenium元素定位实战③ Selenium与页面的交互

往期精彩回顾没想到Airtest的云办公是这样的...“多机协作”--微信互加好友案例分析如何用python模拟鼠标和键盘的操作

python selenium 关闭窗口_Selenium快速上手实战 | 上篇相关推荐

  1. android三星note20.6,安卓新机皇?三星Note20系列快速上手【上篇】

    北京时间8月5日22时举行的Galaxy Unpacked 2020线上发布会上,三星一口气更新了旗下5个系列的7款新品. 图片来源三星官方 而本文接下来将为大家介绍的,就是三星Galaxy Note ...

  2. 苹果系统安装python环境_mac下python相关环境搭建(python开发必经之路之mac快速上手)...

    小结 本篇文章是对上一篇文章<MacOS的小结及终端shell的选择和相关配置全过程(zsh+iTerm2+powerline全解)>的一些拓展和总结,对于相关问题的详细解释和拓展点的标注 ...

  3. Python 代码检查工具 pylint (快速上手)

    文章目录 安装和配置 1. 安装 2. 检查是否安装 3. 生成默认配置文件 4. 查看帮助文件 快速上手 1. 测试单个文件 2. 测试整个工程 3. 生成报告样例 4. 根据意见修改 进阶知识 1 ...

  4. Python教程:网络爬虫快速入门实战解析

    建议: 请在电脑的陪同下,阅读本文.本文以实战为主,阅读过程如稍有不适,还望多加练习. 网络爬虫简介 网络爬虫,也叫网络蜘蛛(Web Spider).它根据网页地址(URL)爬取网页内容,而网页地址( ...

  5. 每日一记 关于Python的准备知识、快速上手

    关于Python的准备知识: Python火爆的原因: -- 语法简洁.简单易学.Excel自动化办公.文件和文件夹的处理 -- 类库强大 丰富的第三方库 每个领域Python都有空间 自然生长:形成 ...

  6. 编程初学者快速上手实战套路

    很多初学者刚开始学编程时,上来就只想着编码!编码!!编码!!! 但你知道什么是编程吗? 要知道:编码≠编程 今天就为大家介绍一种快速上手的编程套路,在套路的基础上编码有如神助! 学过Java语法的童鞋 ...

  7. python selenium下载对话框_Selenium+Python:下载文件(Firefox 和 Chrome)

    引自  https://blog.csdn.net/Momorrine/article/details/79794146 1.      环境 操作系统 Win10 IDE Eclipse (Oxyg ...

  8. python获取当前窗口句柄_人生苦短,我学python之python+selenium 多窗口、句柄(handle)...

    转载自 http://www.cnblogs.com/yoyoketang/p/6128611.html 前言 有些页面的链接打开后,会重新打开一个窗口,对于这种情况,想在新页面上操作,就得先切换窗口 ...

  9. Python selenium新窗口和老窗口的切换

    在平时的自动化测试时,经常会遇到从当前的页面操作后跳转到一个新打开的窗口页面.这时候就需要在新老多个窗口间进行切换了.例如我下面的例子,首先在浏览器中打开百度www.baidu.com,然后在检索框中 ...

最新文章

  1. 以下哪一个不属于python语言的特点-Python语言的特点有哪些
  2. 把磁盘崩溃了,总是进去维护模式,却删除不了fstab文件中的内容
  3. Android 核心分析之十二Android GEWS窗口管理之基本架构原理
  4. java定时器报错,定时器设置报错
  5. 论文学习14-End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures(端到端实体关系抽取)
  6. Maven:构建web工程出现Failed to execute goal org.apache:maven-archetype-plugin:3.1.1:generate (default-cli)
  7. 小米用户画像_腾讯企鹅智库发布手机品牌用户画像:华为一二线城市用户少于小米...
  8. Redis之List类型操作
  9. 内网 根据计算机名查IP
  10. [译]看漫画学Flux
  11. html中右边框出不来,html,为什么右边框会被挡住?
  12. 三国杀服务器维护中进不去,三国杀网页版打不开该怎么解决?
  13. linux centos无线网卡驱动安装,CentOS 6.5 安装无线网卡驱动实现无线上网
  14. linux通过top和iostat查找io性能瓶颈
  15. 美国佐治亚理工计算机专业,世界大学排名之:美国佐治亚理工学院
  16. 大数据小项目之电视收视率企业项目11
  17. IE打不开了,该怎么办?
  18. 中国移动支付线下交易扩大,支付服务角逐趋热
  19. 5分钟学会Linux上传文件和下载文件命令
  20. 戴尔sc系列存储阵列柜服务器,入门级SCv2000!戴尔扩大存储产品组合

热门文章

  1. 17110 Divisible(basic)
  2. ASP母版页与内容页不同目录 链接问题
  3. ASP.NET面试题 (转)
  4. 初次使用Atlas JavaScript (Part 3 - 实现自己的应用)
  5. 计算机论文的致谢部分写什么,毕业论文致谢部分怎么写-论文致谢部分如何写在线等请问毕业论文最后一部分致谢要怎么写呀. 爱问知识人...
  6. redis内存淘汰和持久化_REDIS的淘汰机制与持久化
  7. python批量删除_Python批量删除只保留最近几天table的代码实例
  8. 教育类网页设计灵感|容易阅读,条理清晰!
  9. UI设计灵感|如果你想设计一款有趣的状态提示,看这里OOPS!
  10. 看完这些美食海报,你是不是又有灵感了?