webdriver

selenium历史与webdriver实现原理

醉酒当歌 提交于 2020-03-17 21:10:18
** 我们常说的selenium是什么? ** 移除 Selenium Selenium 1.0 Selenium 2.0 Selenium 3.0 Selenium IDE Selenium Grid Selenium RC Selenium 1.0 Webdriver Selenium2.0 Selenium RC 1. Selenium 1.0: 诞生于2004年,最初是由ThoughtWorks的工程师们为了实现自动操控浏览器的功能,用js封装了一套类库,被称为:selenium core,这也是Selenium 1.0的核心 Selenium IDE: 他是存在于Firefox浏览器上的一个插件,可以用它来实现对浏览器的录制与回放操作 Selenium Grid: 他是一个自动化测试的辅助工具,以分布式为基础,实现在多台机器上运行同一份测试脚本 Selenium RC(remote control): 他是Selenium家族的核心: Selenium RC=Client Libraries+Selenium Server Client Libraries用来编写测试脚本,Selenium Server用来执行从客户端发来的请求,控制浏览器行为,其中服务端用来控制浏览器的类库,便是用js编写的selenium core Python Selenium Server

软件测试3-web自动化测试-selenium框架

╄→尐↘猪︶ㄣ 提交于 2020-03-17 07:20:15
1.自动化概念 (1)有机器代替人工完成指定目的,这叫自动化---------------让程序代替人为去验证程序功能过程,这叫自动化测试 (2)可以方便解决:回归测试、压力测试、兼容性测试 2.web自动化测试 让程序代替人为去验证web项目(基于浏览器打开的项目)的功能过程,这叫web自动化测试 什么web项目适合做自动化测试:需求变动不频繁(测试用例基本不变可脚本自动化测)、项目周期长、需要回归测试的 框架: ①.框:(规定了约束,按照里面的api来开发)架:(结构,搭建了结构,在此基础上开发应用就可) ②框架写好的功能,可使用api来进行开发,例如驱动浏览器 3.selenium2.0(selenium1.0(插件IDE)+webDriver) ①selenium1.0版本是通过JavaScript单元测试工具jsunit为核心来操纵浏览器执行写的代码 开源(可增工具的某些功能)、跨平台、可以在多个浏览器上进行自动化测试selenium IDE,基于webdriver api驱动浏览器,来模拟用户操作。 (1)selenium IDE(用插件来录制脚本-----转化成python脚本)-----为了后期手动写脚本 下载安装:①官方网址下载 ②火狐v35扩展插件组件 使用: 快速查找元素的插件:firebug firepath: https://blog.csdn.net

selenium学习笔记一

只谈情不闲聊 提交于 2020-03-17 06:50:00
以python环境为例,学习selenium首先电脑中应该安装了python环境。 在cmd界面通过 pip install selenium 命令来安装selenium。 以Chrome浏览器为例,首先在下载Chrome浏览器,可在官网进行下载,下载完成后,在地址栏输入chrome://version/,查看当前下载的chrome浏览器的版本。(如果下载的时候已经记得自己的浏览器版本,可忽略查看chrome版本信息步骤) 下载好浏览器后,就需要下载相应的浏览器驱动了,我们选择去相应的镜像网站进行下来,网址为: Chrome驱动下载地址 选择对应自己版本的chrome浏览器驱动版本进行下载,下载后为一个压缩包,将压缩版进行解压即可。如果想将解压路径就当做浏览器驱动的使用位置,那么路径中最好不要包括中文。同样我们也可以对驱动进行路径配置,这样每次在调用webdriver的时候就不用每次填写路径了。 下面通过selenium实现第一个自动化测试程序吧。 代码如下: from selenium import webdriver wb = webdriver . Chrome ( ) wb . get ( 'http://www.baidu.com' ) pass 通过from导入selenium中的webdriver,创建一个webdriver对象

爬虫21-selenium用法

霸气de小男生 提交于 2020-03-15 22:20:23
1.获取cookie信息 from selenium import webdriver driver=webdriver.Firefox() driver.get("https://www.baidu.com") for cookie in driver.get_cookies(): print(cookie)#获得所有cookie print(driver.get_cookie("PSTM"))#获得指定cookie driver.delete_cookie("PSTM")#删除cookie driver.delete_all_cookies()#删除所有cookie    2.页面等待 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver=webdriver.Firefox() driver.get("https://www.baidu.com") driver.implicitly_wait(20)#等待二十秒再抛异常,隐式等待

自动化测试模型(线性,驱动,数据)

佐手、 提交于 2020-03-15 13:44:09
1、自动化测试模型: 自动化测试的模型可以看作自动化测试框架与工具设计的思想,自动化测试不仅仅是单纯的谢谢脚本运行就可以了,还需要考虑到如何使脚本运行的效率提高,代码复用,参数化等问题,自动化测试模型分为四大类,线性模型,模块化驱动测试,数据驱动,关键字驱动; 本地web测试站点搭建: 工具:帝国CMS 下载地址:http://www.phome.net/downloads 安装步骤: 1.解压安装包; 2.将安装包的EmpireServer目录放到自己想放置的路径里面 3.双击文件里面的一键安装.bat(以管理员的身份运行) 4.至此,运行环境及帝国CMS全部安装完毕 5.安装完毕在浏览器中输入:http://localhost/e/admin后回车,进入帝国CMS的后台登录界面 前台地址:http://localhost 后台地址:http://localhost/e/admin(登录用户名,密码与认证码均为admin) 搭建完成注册一个测试的账号:wang 密码:123456(自己注册) 2、线性流程: 线性流程中每个脚本都是相互独立的,且不会产生其他的依赖与调用,其实就是简单模拟用户某个操作流程的脚本 案例: 在帝国软件主页自动登录和退出操作: 地址栏里面输入localhost,然后开始定位各个元素,用户名框,密码框,登录按钮,退出按钮 具体代码如下: 1 from

页面元素定位方法---表格定位

拟墨画扇 提交于 2020-03-15 02:56:33
1. 遍历表格所有单元格 被测试网页 table1.html 所有单元格 1 <html> 2 <body> 3 <table width="400" border="1" id="table"> 4 <tr> 5 <td align="left">图书购买清单</th> 6 <td align="right">一月</th> 7 <td align="right">二月</th> 8 </tr> 9 <tr> 10 <td align="left">python</td> 11 <td align="right">180元</td> 12 <td align="right">200元</td> 13 </tr> 14 <tr> 15 <td align="left">Oracle</td> 16 <td align="right">290元</td> 17 <td align="right">150元</td> 18 </tr> 19 <tr> 20 <td align="left">Selenium自动化测试</td> 21 <td align="right">300元</td> 22 <td align="right">260元</td> 23 </tr> 24 <tr> 25 <td align="left">LoadRunner</td> 26 <td align=

selenium-4:等待

风格不统一 提交于 2020-03-14 20:36:30
4,等待 如今,大多数Web应用程序都在使用AJAX技术。 当浏览器加载页面时,该页面中的元素可能会以不同的时间间隔加载。 这使定位元素变得困难:如果DOM中尚不存在元素,则定位函数将引发ElementNotVisibleException异常。 使用等待,我们可以解决此问题。 等待在执行的动作之间提供了一定的松弛时间-主要是定位元素或对该元素进行的任何其他操作。 Selenium Webdriver提供两种类型的等待-隐式和显式。 显式等待使WebDriver等待特定条件发生,然后再继续执行。 隐式等待使WebDriver在尝试查找元素时轮询DOM一定时间。 显示等待情况下,只有特定条件触发后,WebDriver 才会继续执行后续操作。隐式等待情况下,WebDriver等待一定时间,该时间段内,如果特定元素没加载成功,则抛出异常。 显式等待 Explicit Waits 显示等待的代码定义了等待条件,只有该条件触发,才执行后续代码 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import

在做自动化测试之前你需要知道的

半腔热情 提交于 2020-03-14 08:23:37
什么是自动化测?   做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。   首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner、jmeter),或自己所写的一段程序,用于生成1到100个测试数据。狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从而代替人工对系统的功能进行验证。   当然,我们更普遍的认识把“自动化测试”看做“ 基于产品或项目UI层的自动化测试”。 分层的自动化测试   这个概念最近曝光度比较高,传统的自动化测试更关注的产品UI层的自动化测试,而分层的自动化测试倡导产品的不同阶段(层次)都需要自动化测试。   相信测试同学对上面的金字塔并不陌生,这不就是对产品开发不同阶段所对应的测试么!我们需要规范的来做单元测试同样需要相应的单元测试框架,如java的Junit、testNG,C#的NUnit ,python 的unittest、pytest 等,几乎所有的主流语言,都会有其对应的单元测试框架。   集成、接口测试对于不少测试新手来说不太容易理解,单元测试关注代码的实现逻辑,例如一个if

Python爬虫连载14-动态HTML、PhantomJS和Chromedriver

主宰稳场 提交于 2020-03-14 01:47:28
一、动态HTML 1.爬虫跟反爬虫 2.动态HTML连载 (1)JavaScript (2)jQuery (3)Ajax (4)DHTML (5)Python采集动态数据 从JavaScript代码入手采集​;Python第三方库运行JavaScript,直接采集你在浏览器中看到的页面 二、Selenium + PhantomJS 1.Selenium:web自动化测试工具 (1)​自动加载页面;(2)​获取数据;(3)截屏 ​(4)官方文档:http://selenium-python.readthedocs.io/index.html 2.PhantomJS (1)基于WebKit的无界面的浏览器 (2)​官方网站:http://phantomjs.org/download.html 3.Selenium库有一个WebDriver的API 4.WebDriver可以跟页面上的元素进行各种交互,用它可以来进行爬取 """ 通过webdriver操作模拟进行查找 """ from selenium import webdriver import time #通过keys模拟键盘 from selenium.webdriver.common.keys import Keys #操作哪个浏览器就对哪个浏览器建立一个实例 #自动按照环境变量查找相应的浏览器 driver =

python爬虫---从零开始(六)Selenium库

£可爱£侵袭症+ 提交于 2020-03-13 16:52:26
什么是Selenium库:   自动化测试工具,支持多种浏览器。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。 爬虫中主要用来解决JavaScript渲染的问题。用于驱动浏览器,并且给予浏览器动作。 安装Selenium库:pip3 install selenium Selcnium库的使用详解:    在使用之前我们需要安装webDriver驱动,具体安装方式,自行百度,切记版本对应。    基本使用: #!/usr/bin/env python # -*- coding: utf-8 -*- # 基本用法 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait browser = webdriver.Chrome() try: browser.get(