随笔分类 - selenium项目实战和小总结
自动化测试selenium
摘要:#encoding=utf-8 class Table(object): # 定义一个私有属性__table,用于存放table对象 __table = '' def __init__(self, table): # Table类的构造方法 self.setTable(table) def setT
阅读全文
摘要:推荐一篇博主博客:https://www.cnblogs.com/CJOKER/p/8295272.html 它里面讲述了日志的显示顺序、如何在控制台进行显示,以及文件配置都挺详细的,可以先看看推荐的内容 我这边按项目的情况对使用的日志模块进行了一个封装 1.日志文件的配置 Logger.conf
阅读全文
摘要:背景:在selenium出错后都会截图,那截图的时候都是以当天时间存入到当前时间文件夹中,那这个就可以分成3部,进行封装 一:格式化数据 #encoding=utf-8 import time from datetime import datetime ''' 本文件主要用于获取当前的日期以及时间,
阅读全文
摘要:#encoding=utf-8 from selenium import webdriver import unittest, time from PIL import Image class ImageCompare(object): ''' 本类实现了对两张图片通过像素比对的算法,获取文件的像素
阅读全文
摘要:网址:https://www.w3school.com.cn/example/xmle/books.xml 使用@属性方式查找元素 案例:获取//*[@category] 属性 2.使用父节点获取元素唯一性 如果在搜索栏中,使用//*[@lang='en'],会找到4个,我们可以使用父类中唯一,定位
阅读全文
摘要:xpath的轴有以下几种方式 • parent::* 表示当前节点的父节点元素• ancestor::* 表示当前节点的祖先节点元素• child::* 表示当前节点的子元素 /A/descendant::* 表示A的所有后代元素• self::* 表示当前节点的自身元素• ancestor-or-
阅读全文
摘要:第一步: 得到功能测试的常规用例,查看是否可以进行自动化,要明确,自动化不是为了自动化而自动化,自动化是节省人力,主要做回归测试,如果变动性特别大,不建议做自动化,具体可查看其它文章“什么适合做自动化”,且有些自动化要评判付出与收益比,如果付出很大,收益很小,这种也不值得做自动化 第二步: 确认可以
阅读全文
摘要:最近对java+selenium+testng+maven 做一个小项目的总结,并对工作中的框架在做一些小总结,大概目录为: 1.项目实战--百度登录输入框 2.项目的二次封装 3.框架分层,及po模式 4.框架中的监听及重跑 项目实战: 百度输入框,目录格式:
阅读全文
摘要:当你使用driver原生API如果发现报错,或者点击不了,或者出现其他异常,建议最好使用js的方式进行点击
阅读全文
摘要:背景:项目主要是做埋点数据,要使用 BrowserMobProxyServer,它相当于做一个代理,在你访问一个网页时,通过代理,获取打开网页的数据,对比你需要对比数据,所以这个工具提供获取页面请求的功能,因为我这里是使用的grid分发,demo如下 获取的数据
阅读全文
摘要:使用browsermob代理做埋点数据,maven配置的包如下 在其他同事电脑上,可能会正常运行,但是在我自己电脑上不能正常运行,提示错误如下 解决方案,升级maven包,升级为最新版本,最新版本
阅读全文
摘要:java.lang.NoSuchMethodError: org.openqa.selenium.chrome.ChromeOptions.addArguments([Ljava/lang/String;)Lorg/openqa/selenium/chrome/ChromeOptions; at c
阅读全文
摘要:今天用火狐浏览器来做自动化,才启动就报错,提示不能创建新的session,不能启动浏览器 问题原因: 火狐driver与火狐浏览器与selenium版本的不兼容 我使用的火狐driver是0.21.0 版本,下载地址:https://github.com/mozilla/geckodriver/re
阅读全文
摘要:背景:接到一个需求,想检测页面是否能检测js报错,何为js报错,如下图所示,在控制台中,使用console,如果有js报错,就会出现错误 如何检测,简单版操作,打开一个url,使用manage获取浏览器的日志,这样会打印出这个页面获取的内容 在日志中会打印出内容包含sever和waring,serv
阅读全文
摘要:背景:使用到grid做分发,已经有两周,运行较稳定,分发也健壮,不知道是不是要因为运行量小,服务器也没出问题,稳定到两周后,发现分发到A服务器(10.40.2.113)和B服务器(10.40.2.114)这两台机器本地连接不上10.40.6.24:3306这个数据库,不知道有谁更改过服务器什么配置没
阅读全文
摘要:背景:借助selenium 的grid做分布式运行,进行分发任务,(目前不做多浏览器的操作,只对谷歌浏览器进行操作) 目前在A服务器(http://10.40.6.24:4444)上注册了一个hub,在B和C服务器分别注册node,且都绑定在A服务器上,如图 看很多贴子在使用grid中是指定某台服务
阅读全文
摘要:1.背景 因为现在项目是要做分布式,而以前使用谷歌浏览器模拟手机运行做的分布式,是指定在某台机器运行是通过Jenkins配置,来指定服务器,但是这样有一个问题,如果大家都同时配置到某台电脑,那台服务器压力就很大,所以需要根据每台服务器的情况,去分配任务,那我就需要解决第一个问题,如何让模拟器指定ip
阅读全文
摘要:目前ui框架会做一个更新,把原有的Jenkins分布式方式换成grid方式,换成grid方式有两个好处,1.grid的资源占用比Jenkins的jnlp占用资源少 2.grid可控制不同浏览器同时跑 看很多网上跑自己的案例都很顺,想直接拿过来用,中间遇到很多问题,发现自己的电脑,启动多个浏览器后,只
阅读全文
摘要:读取测试用例 一直我们都没有考虑过读取测试用例的事,我们现在这样设计测试用例有两个好的点,在执行方法时,打印测试用例,方便知道执行的内容是什么,在报告展示时,把测试用例的结果展示出来 实现方案:目前我们demo使用读取excel的报方式,把测试用例读取出来,然后再来展示,大概读取的case内容就是这
阅读全文
摘要:背景:网站中需要切环境到预发布,在用谷歌浏览器可以使用工具,但是在selenium启动时,是不会带任何插件,向开发了解下,切换环境本质是添加cookie值,那么这个就简单了 1.使用selenium中的cookie进行添加 staging:是cookie名称 true:是值 rosewholesal
阅读全文