随笔分类 - Selenium
摘要:测试框架的设计有两种思路,一种是自底向上,从脚本逐步演变完善成框架,这种适合新手了解框架的演变过程。另一种则是自顶向下,直接设计框架结构和选取各种问题的解决方案,这种适合有较多框架事件经验的人。本章和下一张分别从两种设计思路来介绍框架的搭建过程。 ## 从脚本到用例 相比于一堆测试脚本,使用规范化的
阅读全文
摘要:准备 注册SauceLab账户,并获取ascees_key 安装sauceclient pip install sauceclient 示例代码 import os import unittest import sys from selenium import webdriver from sauc
阅读全文
摘要:开发跨平台桌面软件,目前比较流行的框架有Qt、Electronjs、CEF等,其中Electronjs和CEF都是基于Chromium浏览器内核的。 也就是说这种应用本质上套了一个浏览器的外壳。这样的PC应用,同样可以使用Selenium进行自动化测试。 前公司的PC版客户端是基于CEF框架的,CE
阅读全文
摘要:启动浏览器 启动各种浏览器 使用PantomJS 使用HTMLUnit Mac如何启动Chrome,Firefox,Opera,Safari,Edge 如何启动360等国产浏览器 如何测试Electonjs应用 提高性能 浏览器并发 使用Cookies绕过登录 使用接口替代Selenium 页面元素
阅读全文
摘要:我们在使用Selenium测试Web或Electronjs/Cef框架应用时,有时候操作一个元素需要判断是否发送了请求以及请求的参数是否正确 我们可以通过,开启Chrome的性能日志来然后配合driver.get_log("performance")来查看请求,然后对Network相关的日子进行过滤
阅读全文
摘要:框架及测试框架 什么是框架? 框架是对代码、配置、数据的合理组织 框架是对公共方法的有效封装 测试框架 测试框架、测试工具和测试平台的不同 UI自动化测试的意义 验证页面交互的一致性 验证前后端分离项目验证前端数据的正确性 补充覆盖接口测试无法覆盖的业务场景 UI自动化测试的策略 验证所有页面是否都
阅读全文
摘要:Electron是使用 JavaScript,HTML 和 CSS 构建跨平台的桌面应用程序框架,基于Nodejs + Chromium浏览器内核。 官网:https://www.electronjs.org/ Electron有很多优秀的应用,如VS Code、Atom、What's App、Po
阅读全文
摘要:Selenium每次打开Chrome浏览器时,每次都是一个初始的全新环境,有时候,我们需要一些当前用户的一些设置和插件等,便可以通过ChromeOptions参数,通过指定用户数据目录--user-data-dir来设置成真实用户目录来实现。 浏览器地址栏访问chrome://version/查看个
阅读全文
摘要:有时页面为了防止用户修改指定的属性或者输入错误的格式,会对某些输入框设置readonly只读属性。一些日期选择框为了避免用户输入错误的格式,将输入框设置为只读,用户只能通过点击日期控件进行选择日期,如图5.11,网址为:http://www.miniui.com/demo/datepicker/da
阅读全文
摘要:PageObject模式简介 众所周知,UI页面元素常常是不稳定的,在使用Selenium编写WebUI自动化测试用例时,随着测试脚本的增加,维护和更新这些元素便成为一个令人头疼的问题。 在普通模式下,脚本直接定位并操作元素,一旦有元素变动时,首先我们需要从众多的用例中找到使用它的用例,然后逐个修改
阅读全文
摘要:Selenium常用的断言包括 页面属性断言:断言标题、url或页面源码中是否包含或不包含特定字符 元素存在断言:断言指定元素存在 图片及链接断言:断言图片正常显示、链接可以正常打开 页面属性断言 这是最常用的断言方式,可以用来断言页面是否正常打开,是否在指定的窗口及页面上,示例如下。 from s
阅读全文
摘要:在HTML中,由于页面美化和用户交互的需求,元素隐藏的使用非常常见,比如下拉菜单、内容折叠、对话框以及上传文件框等。 隐藏常见有以下几种表现形式。 hidden:占据空间,无法点击 style="display: none" :最常见,不占据空间,无法点击 style="visibility: hi
阅读全文
摘要:pip install numpy opencv-python pillow import threading import time from selenium import webdriver from PIL import ImageGrab import numpy as np import
阅读全文
摘要:from threading import Thread from selenium import webdriver from time import sleep def baidu_search(): dr = webdriver.Chrome() dr.get('https://www.bai
阅读全文
摘要:在编写调试脚本时一般采用本机上的Selenium环境。在执行用例和协作时,则需要我们部署Selenium服务,使用专门的Selenium服务来执行用例。 使用Selenium Grid 部署Selenium服务一般采用Selenium Grid的方式。Selenium Grid采用Hub/Node的
阅读全文
摘要:zelenium是基于selenium grid 和 docker的一种本地selenium服务云框架,可以对接其他的云平台。 提供了视频录制、实时预览和仪表盘等功能。 官方网站: https://opensource.zalando.com/zalenium/ 使用方法 安装docker Wind
阅读全文
摘要:由于UI层自动化的不稳定性,经常会遇到执行中断或用例失败的问题,以下是一些常见的措施。 详细的日志 定位出错时截图 Pytest的缓存机制(可以记录成功了哪些失败了哪些) 自动重试机制(如pytest-rerunfailures) 用例录像 用例录像是最直观的一种方式,可以查看到实时的操作情况。很多
阅读全文
摘要:MacOS Selenium跨浏览器环境搭建-目录 macOS使用Selenium测试Opera浏览器 macOS使用Selenium测试新版Edge浏览器 macOS使用Selenium操作Firefox浏览器 macOS使用Selenium驱动Safari浏览器 macOS搭建Selenium
阅读全文
摘要:MacOS Selenium跨浏览器环境搭建-目录 macOS使用Selenium测试Opera浏览器 macOS使用Selenium测试新版Edge浏览器 macOS使用Selenium操作Firefox浏览器 macOS使用Selenium驱动Safari浏览器 macOS搭建Selenium
阅读全文
摘要:MacOS Selenium跨浏览器环境搭建-目录 macOS使用Selenium测试Opera浏览器 macOS使用Selenium测试新版Edge浏览器 macOS使用Selenium操作Firefox浏览器 macOS使用Selenium驱动Safari浏览器 macOS搭建Selenium
阅读全文

浙公网安备 33010602011771号