本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下testNG的Dataprovider的使用和数据驱动的自动化测试的实现,并提供全部代码. 首先,DataProvider是什么? 这是testNG提供的一个做数据驱动的自动化测试时用到的标签.详见testNG官网文档. 很多人会在使用testNG的时候把测试数据文件独立出来,有的人会自己去写读文件…
本系列所有代码 https://github.com/zhangting85/simpleWebtest本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下selenium和testNG的多线程并发测试的实现,并提供全部代码. 这里我的多线程的执行测试用例,目的首先是为了提高测试执行速度,然后是为做分布式测试提供技术基础. testNG自带了多线程机制,那么为什么要我们还要自己写一些代码呢? 因为selenium webdriver本身不是线程安全的.比…
在多个浏览器中进行 Web 应用程序的端到端功能测试 Selenium 是一款有名的 Web 应用程序测试框架,用于进行功能测试.新版本 Selenium 2 结合了 Selenium 1 和 WebDriver(Selenium 的并行项目)中的最佳特性.在本文中,我们将介绍如何轻松地从 Selenium 1 过渡到 Selenium 2,并用一些示例介绍如何使用 Selenium 2,如何进行远程测试,以及如何将书面测试从 Selenium 1 迁移到 Selenium 2 中. 简介 Se…
上一篇<元素定位-----Selenium快速入门(二)>说了,如何定位元素,本篇说说找到的元素(WebElement)该怎么用. WebElement常用方法:  返回值  方法名  说明  void  clear() 如果找到的元素是input 或  textarea,则清除它的值.其他元素不受影响.   void  click() 点击一个元素,元素必须可见,并且宽高都必须大于0.如果这个点击操作导致页面刷新的话, 必须要抛弃这个元素的所有引用,并且对这个元素的进一步操作, 都会引发St…
python selenium webdriver入门基本操作 未经作者允许,禁止转载! from selenium import webdriver import time driver=webdriver.Chrome() driver.get('http://www.baidu.com')#进入百度首页 driver.maximize_window()#窗口最大化 time.sleep(1) driver.set_window_size(480,600)#窗口大小变化 time.sleep…
有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败.在本系列Selenium窗口切换-----Selenium快速入门(六)中,我们就已经出现过类似的问题,当一次访问的时候,发现页面不一定能成功加载iframe,需要再次刷新,iframe才可以成功加载.等待,就是要解决这类的问题,实际上,我们前面已经在不知不觉中使用了,就是使用java自身的Thread.Sleep()进行暂停等待.而Selenium对于元素等待则提供了隐式和显式两种等待…
写在前面:最近在研究UI自动化测试的过程中,发现公司里通常用的是AutomanX框架,而这个框架实际上是基于selenium webdriver框架的,所以在编写测试用例时,很多语法都是直接使用selenium webdriver语法的,所以开始对selenium webdriver做了一些了解. 早期的Selenium使用的是Javascript注入技术与浏览器打交道,需要Selenium RC启动一个Server,将操作Web元素的API调用转化为一段段Javascript,在Seleniu…
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下selenium页面对象脚本的编写,并提供全部代码. 文中将看到,使用selenium编写的一个高复用性.高可维护性的测试框架的核心部分. 背景就不多介绍了,不用页面对象设计的selenium测试框架多半会存在巨大缺陷,长时间使用后问题多多,并且导致了N多项目失败.或者即使不失败,也让自动化测试人员…
可先参考   Selenium | 基础入门 | 利用Xpath寻找用户框 核心代码: //截屏操作 File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(srcFile, new File("D:\\1.png"));…
Python+Selenium基础入门及实践 32018.08.29 11:21:52字数 3220阅读 23422 一.Selenium+Python环境搭建及配置 1.1 selenium 介绍 selenium 是一个 web 的自动化测试工具,不少学习功能自动化的同学开始首选 selenium ,因为它相比 QTP 有诸多有点: 免费,也不用再为破解 QTP 而大伤脑筋 小巧,对于不同的语言它只是一个包而已,而 QTP 需要下载安装1个多 G 的程序. 这也是最重要的一点,不管你以前更熟…
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基…
使用DataProvider提供数据有两种形式: 第一种:一种是在测试代码和测试数据放在同一个类中: 第二种:把所有的数据提供都单独写在一个类里面,当测试数据比较多时,这种方法利于维护. DataProvider定义了属性name时,提取数据时可以使用name,没有定义name时,提取数据时直接使用方法名称. public class ParamTestWithDataProvider1 { @DataProvider(name = "test1") public static Obj…
DDT,即数据驱动测试 Data Driver Test,我曾经记录了一篇关于python的DDT框架(Excel+DDT数据驱动实例),那么java中的DDT是怎么样的呢?在java中,可以用testng的DataProvider和Excel实现. 首先建一个文档TestData.xlsx,里面内容如下: 然后写一个读excel的公共类,代码如下: /** * @author Helen * @date 2018年6月5日 */ package common; import java.io.F…
@DataProvider标记的方法除了可以返回数组外,还可以返回一个Iterator,这样的好处是不用把所有的测试数据都加载到内存中,而是需要的时候就读一条. 下面的例子就使用了Iterator,然后在Iterator对象中保存了一个文件对象,在需要参数的时候就从文件中读一行数据出来. 这个例子主要由如下四个文件组成: Person类被测试类 TxtIterator类实现Iterator接口,用于从文件中读取数据,返回给被测试类 testng.xmlTestNG配置文件 data.txt参数池…
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境的搭建,并提供全部代码. 1,安装JDK 安装好之后,一般要设置2个环境变量: 1)JAVA_HOME:值为你安装JDK的目录: 2)path:向path里添加JDK下的bin目录: 配置好后,打开命令行,使用java -version检查是否安装正确. 2,安装Eclipse 推荐安装JavaEE版…
起初写博客是为了妹子学习,现在发现忽略了最基础的Selenium教程,所以:从本博客开始编辑 Selenium 入门知识.(学好Java) Selenium 入门 1:(学好Java) 录制回放,简单粗暴(如下图).就不解释了.…
selenium 阅读至grid部分,当前没有远程需求,搁置:https://www.seleniumhq.org/docs/07_selenium_grid.jsp testng http://testng.org/doc/…
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下selenium页面对象设计下的页面模块的写法,并提供全部代码. 在一个页面上,有的时候,会有一些需要重复利用的模块. 比如,一个电子商务网站上,经常会在页面最顶上有一个搜索框.这个搜索框在几乎所有页面上都会出现.可以随时用它搜索一些商品. 这里,有人用继承,写一个父类,父类提供了这个搜索框的一些功…
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下selenium的EventFiringWebDriver和监听器的使用,并提供全部代码. 为什么要用EventFiringWebDriver? 因为我可以用监听器监听他的所有操作. 监听所有操作有什么用? 1,我可以用log4j记录我的driver的所有事件.注意,我只要对每种事件写一行代码,一共…
本系列所有代码 https://github.com/zhangting85/simpleWebtest 本文将介绍一个Java+TestNG+Maven+Selenium的web自动化测试脚本环境下selenium简单线性脚本的编写,并提供全部代码. 文中将看到,使用selenium编写一个能操作浏览器的脚本是非常容易的.而简单线性脚本的编写是下一步编写页面对象脚本的基础. 1.在开始之前,我想明确一下,自动化测试的基本原理. 有的测试人员认为自动化测试很神秘,很神奇.恰恰相反,自动化测试很简…
selenium是一个开源的测试化框架,可以直接在浏览器中运行,就像用户直接操作浏览器一样,十分方便.它支持主流的浏览器:chrome,Firefox,IE等,同时它可以使用Java,python,Javascript,c#等主流编程语言.在这里笔者仅介绍selenium在Java+chrome环境下的爬虫应用.本篇介绍selenium的下载和入门应用. 一.下载1.chrome浏览器:没有的大家自行百度下载2.eclipse2019:自行百度下载安装,根据提示下一步...即可3.下载selen…
这里不讲解怎么在Eclipse安装配置TestNG,网上一搜一大把,大家自己去实践一下。 在这里主要说一下用Java来实现Selenium Webdriver的截图功能和把截图写到TestNG的报告中。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 //Capture screenshot public String captureScreenShot() {     String di…
人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Linux基础入门 小白学 Python 爬虫(4):前置准备(三)Docker基础入门 小白学 Python 爬虫(5):前置准备(四)数据库基础 小白学 Python 爬虫(6):前置准备(五)爬虫框架的安装 小白学 Python 爬虫(7):HTTP 基础 小白学 Python 爬虫(8):网页基…
对于测试工程师新手来说,最痛苦的莫过于入门,其实只要入门3个月左右,对于自动化测试,所有的测试工程师除了喜爱,就是更爱.自动化测试工作,是从根本上解放人性,不用重复去完成鼠标的点点点,例如以下测试常常要手工完成的功能模块: 1. 注册(测试点: 手机注册,邮箱注册,用户名注册,然后是个人注册,企业注册的各种角色注册,之后是注册失败,失败信息验证...) 2. 登录 3. 商品&商品配置 4. 购物车 5. 下单 6. 支付 其中要整个网站跑一遍,再熟悉业务的测试同学也要花费4-8个小时,不吃不喝…
Start步骤: 1.从http://docs.seleniumhq.org/download/ 下载 C# dll 文件和 Internet Explorer Driver Server(32 或 64 位,根据IE类型决定). 2.把下载的文件解压,如解压到D:\Selenium\ 3.打开VS并新建项目,从图中可以看出,这个VS用到的框架是.Net 3.5. 4. 在该项目中添加引用.Look in的文件目录即为我们解压的目录,因为这个环境中用的.Net 3.5,因此此处的文件路径为:D:…
Selenium是一套自动化测试框架.官方网站是:https://www.seleniumhq.org/  某些童鞋访问可能需要FQ. Selenium支持多种语言开发,例如Java,Python,C#,PHP等.本系列将使用Java开发,使用Eclipse作为开发工具,Selenium版本3.9.1,系统Win10. 一.Eclipse和JDK的下载和安装 Selenium3.x要求Java8或以上,Eclipse4.7.2要求JRE8u112,环境需求可看: https://www.ecli…
一.eclipse设置 工欲善其事必先利其器,在说元素定位之前,先来设置下eclipse. 首先放大一下字体,点击windows-preferences 其次,eclipse对于java的智能提示默认是输入.才触发的,我们改为任意一个字母即可触发. Java-Editor-Content Assist 在Auto activation triggers for java 输入:abcdefghijklmnopqrstuvwxyz. 注意,最后是有一点的"." 最后,我不想工具栏中有那么…
1. 安装selenium 首先确保python安装成功,输入python -V 在windows下使用pip安装selenium,详情如图所示: 在ubuntu下使用pip install selenium 2. 在ubuntu下使用selenium打开firefox浏览器 from selenium import webdriver b = webdriver.Firefox() 运行提示错误: 错误原因是因为没有安装firefox的selenium驱动程序 下载geckodriver并安装…
本文中主要介绍webdriver常见的对象定位方法: 一.对象定位的目的 二.常见的对象定位方法 一.对象定位的目的: 1.操作对象 2.获得对象的属性,如:对象的class属性.name属性等 3.获得对象的text 4.获取对象的数量 二.常见的对象定位方法: 1.find element方法: 1.id 2.name 3.class name 4.tag name 5.css定位 6.xpath定位 7.link text 8.partial link text # !/usr/bin/e…
一.浏览器最大化 二.设置浏览器分辨率大小 三.打印页面title 四.打印URL 五.控制浏览器前进或后退 #!/usr/bin/env python#-*- coding:utf-8 -*- from selenium import webdriverimport time browser = webdriver.Firefox() #浏览器最大化 browser.maximize_window() #设置浏览器分辨率大小browser.set_window_size(800,600) #访…