Selenium基础知识】的更多相关文章

被测产品是B/S 结构,那么推荐selenium selenium 并不是单纯的一个工具,他是一组工具的集合 1. selenium IDE 是嵌入到Firefox浏览器中的一个插件,实现简单的浏览器操作的录制与回放功能)(快速的创建bug重现脚本,在测试人员的测试过程中,发现了bug之后可以通过IDE将重现的步骤录制下来,以帮助开发人员更容易的重现bug. 2.Selenium Grid是一种自动化的测试辅助工具) (1)并行执行 (2)通过一个主机统一控制用例在不同环境.不同浏览器下运行.…
本人博客文章网址:https://www.peretang.com/basic-knowledge-of-selenium/ 什么是Selenium Selenium是一个自动化测试工具 是一组不同的工具 其支持在多个浏览器平台上执行测试 为什么需要Selenium 1. 使原本手动的测试变成自动化 2. 更容易完成频繁的回归测试 3. 更快速的反馈给开发人员与测试人员 4. 几乎无限次迭代的测试执行 5. 更有纪律的测试用例 6. 自动生成缺陷报告 7. 补充手动测试的遗漏 Selenium组…
自动化测试过程中,经常会用截图的方式,更直观的显示展示错误信息:selenium截图的三种方式: driver.get_screenshot_as_file(r'd:\selenium.png') #保存到文件 driver.get_screenshot_as_base64() #截图,base64的编码格式,在html界面输出的时候会用到 driver.get_screenshot_as_png() #保存的是二进制数据 截图到文件,代码展示: driver = webdriver.Ie()…
关于Selenium处理验证码总结下: 1.去掉验证码(这个为了测试,去掉可能性不大) 2.万能验证码(让开发给做一个万能验证码,可能性也不大) 3.OCR光学识别,python包Python-tesseract 配合image;这个方法,对于现在验证码多样化来说,识别率不高. 4.cookies机制(有些网站可以记住登录,下次自动登录,就是将用户信息写到了cookies中) 那么,我们是不是可以用代码去写cookies呢. python提供了获取cookies增加cookies等用法:那么要增…
textarea文本域selenium有时处理不了,但是我们可以采用迂回,解决这个问题 那么,我们用到了execute_script()方法来调用javascript来解决这个问题 这其中涉及DOM,需要对这个有一定了解. 有一些文本域,通过id.name等可以定位到,但是sendkeys就不管用了. jsStr = "var kw = document.getElementById('kw') ;kw.value='javascript';" driver.execute_scrip…
使用switch_to.alert方法来处理弹页面弹出的警告框 页面常见警告框种类:alert/confirm 确认框/prompt switch_to.alert().accept() switch_to.alert().text() #返回alert/confirm/prompt等警告框中的文本 switch_to.alert().dismiss() #解散警告框 send_keys('') #将文本发送到,警告框 #输入selenium 搜索 driver.find_element_by_…
1.下拉列表定位 要选择下拉列表中的元素,要先定位到,下拉列表元素,然后可以通过xpath去点击,表内内容 例如,百度搜索-->百度设置-->搜索设置-->选择下拉列表框内"每页显示50条 #先定位元素 element = driver.find_element_by_id("nr")  #再通过元素下找xpath定位到内容,并点击 element.find_element_by_xpath("//option[@value='50']"…
在测试过程中,经常会碰到frame和iframe,嵌套等情况 这种情况下直接通过id,name等等是无法定位到的 好在selenium替我们想到了这个问题switch_to方法解决问题 switch_to先定位iframe,根据iframe的id或name进行定位:那么,iframe没有id或name怎么办: #可以用xpath先定位iframe呀 iframe = driver.find_element_by_xpath('//*[@class="kw"]') #再将iframe定位…
一.由于有些页面加载完后,某些元素还没有加载,这样就会导致异常,脚本稳定性变差 为了解决这个问题,selenium提供了WebDriverWait以及implicitly_wait()等待 WebDriverWait显示等待: expected_conditions类,提供预期条件判断: from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_c…
一.鼠标操作 这个需要使用webdriver下的ActionChains类,这个类是操作鼠标操作的: from selenium.webdriver import ActionChains 鼠标操作可分为三类:鼠标移动.鼠标拖拽.鼠标点击 element = driver.find_element_by_name('tj_settingicon') #鼠标点击 ActionChains(driver).click(element).perform() #单击某元素 ActionChains(dr…
所需环境: 1.python2.7 + pycharm 2.Selenium 3.浏览器驱动(IEDriverServer.exe)  这里使用的是ie浏览器 将驱动放到一个环境变量路径,这里直接放在了python27根目录 4.注意事项 如果使用ie驱动,需要将ie启用保护模式,去掉所有勾选,4个设置要一至:否则可能会出现,执行脚本地时候可以将浏览器打开,但是不会继续往下执行 安装python2.7 和pycharm这里就不在说了,百度一下很多的下载地址 一.安装selenium 我们直接在命…
1. ide常用命令,参考 http://sariyalee.iteye.com/blog/1743350  2. ide介绍,参考 http://blog.csdn.net/oscar999/article/details/11386839  3. 详解css.xpath:http://www.w3school.com.cn/cssref/css_selectors.asp                      http://www.w3school.com.cn/xpath/xpath_…
参考http://www.yiibai.com/selenium/selenium_webdriver.html…
说到多窗口切换必须想到driver.switch_to.window()方法 driver.switch_to.window() 实现在不同窗口之间切换 driver.current_window_handle() 获取当前窗口,聚丙 driver.window_handles() 获得所有窗口,聚丙 curHandle = driver.current_window_handle() #当前窗口聚丙 winHandle = driver.window_handles() #所有窗口聚丙 for…
对一个不能直接定位的元素来说,调试是很常见的事,所以这里也简单总结了一下. 调试定位元素的工具很多,介绍也多,就不一一介绍了.下次有时间再补充.以下是我常用调试的方法(浏览器自带的控制台调试,仅介绍一下chrome) 1. IDE自带调试: 释: 可以不输入,使用“select”点击元素定位,然后用“find”查看是否可定位. 也可以自己输入自己定位的方法,点击“find”查看是否可定位. 2. chrome控制台调试 chrome自带功能,可生成xpath及css的元素定位值,如图 但是,这种…
1. By.name() 页面源码如下: [html] : <button id="gbqfba"aria-label="Google Search" name="btnK" class="gbqfba"><spanidspanid="gbqfsa">Google Search</span></button> 当我们要用name属性来引用这个button并点击…
第一章   自动化测试前提及整体介绍 1-1功能测试和自动化测试的区别 1-2自动化测试流程有哪些 1-3自动化测试用例和手工用例的区别 1-4 自动化测试用例编写 1-5 selenium的优势以及工作原理 第二章   Selenium基础知识回顾 2-1 IDE及环境配置 2-2 HTML定位基础知识 2-3 元素定位 2-4常见元素的处理 2-5常见元素的处理-radio 2-6 常见元素的处理-check 2-7 常见元素的处理-button 2-8 常见元素的处理-form 2-9 常…
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率.但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高:针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试. 性能自动化即使用性能测试工具(…
爬虫基础知识 一.什么是爬虫? 向网站发起请求,获取资源后分析并提取有用数据的程序. 二.爬虫的基本流程 1.发起请求 2.获取内容 3.解析内容 4.保存数据 三.Request和Response Request:用户将自己的信息通过浏览器(socket client)发送给服务器(socket server) Response:服务器接收请求,分析用户发来的请求信息,然后返回数据(返回的数据中可能包含其他链接,如:图片,js,css等) 注:浏览器在接收Response后,会解析其内容来显示…
Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento: Magento技术堆栈 Magento查看模型 可扩展性 模块化 事件驱动的体系结构 安全 架构图: Magento架构从不同的角度根据您的角色和学习Magento更多信息的目的,有几种不同的方式可以查看Magento体系结构. 例如,想要创建新模块或者可能定制现有模块的开发人员将希望通过Mag…
一.HTTP协议的理解 URL和URI 在学习HTTP之前我们需要了解一下URL.URI(精确的说明某资源的位置以及如果去访问它) URL:Universal Resource Locator 统一资源定位符,描述了一台特定服务器上某资源的特定位置. URI :Uniform Resource Identifier 统一资源标识符,URI有两种表现形式URL和URN. HTTP和HTTPS 我们经常会在URL的首部会看到http或者https,这个就是访问资源需要的协议类型,除了http和htt…
说起网络爬虫,大家想起的估计都是 Python ,诚然爬虫已经是 Python 的代名词之一,相比 Java 来说就要逊色不少.有不少人都不知道 Java 可以做网络爬虫,其实 Java 也能做网络爬虫而且还能做的非常好,在开源社区中有不少优秀的 Java 网络爬虫框架,例如 webmagic .我的第一份正式工作就是使用 webmagic 编写数据采集程序,当时参与了一个舆情分析系统的开发,这里面涉及到了大量网站的新闻采集,我们就使用了 webmagic 进行采集程序的编写,由于当时不知道其设…
自动化测试 重复测试.性能测试.压力测试 快速.可靠.可重复.可程序化.广泛的 自动化测试适合场合 回归测试.更多更频繁的测试.手工测试无法实现的工作.跨平台产品的测试.重复性很强的操作 不适合场合 涉及与物理设备交互的测试.结果很容易通过人验证的测试.软件版本不稳定 注:实际过程中自动化开展的比例,远远没有想象的高 分层测试 页面测试UI(黑盒测试)-UI.JS 接口测试service-模块接口.web接口 单元测试unit(白盒测试)-单元.Code Review 自动化测试工具 UFT -…
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotNet-Framework.aspx (非常经典的一篇文章) 精通C# (第六版) CLR via C# (第三版) 1 术语 面试出现频率:从来没人问过.事实上我都不知道怎么问,考背书吗?倒是可以问问知不知道现在.NET最新版本是什么,考察面试者是否对新技术足够敏感. 重要程度:3/10 需要理解的…
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco .Redhat.iMatix 等联合制…
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能帮助大家.大致的结构: 1.[Java面向对象] 2.[Java集合详解] 3.[Java IO相关操作] 4.[Java 8函数编程] 5.[常用设计模式] 6.[Spring MVC] 7.[MyBatis] 8.[Vue.js] 9.[Spring Boot] 10.[实例(结合Spring…
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 数据库结构 SQL 概要 创建数据库与表 删除和更新表 一.What's 数据库 1.数据库(Database,DB):将大量数据保存起来,通过计算机加工而成的可以进行高效访问的数据集合.如:大型-银行存储的信息,小型-电话簿. 2.数据库管理系统(Batabase Management Syste…
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理(一)- 数据库与 SQL>的下篇. 目录 SELECT 语句基础 算术运算符和比较运算符 逻辑运算符 一.SELECT 语句基础 1.查询指定列:SELECT 关键字 --语法: --SELECT <列名>, ... -- 希望查询列的名称 --FROM <表名> -- 指定选取…
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理(二) - 查询基础>的下篇. 目录 对表进行聚合查询 对表进行分组 为聚合结果指定条件 对查询结果进行排序 一.对表进行聚合查询 1.聚合函数 (1)5 个常用函数: ①COUNT:计算表中的记录(行)数. ②SUM:计算表中数值列的数据合计值. ③AVG:计算表中数值列的数据平均值. ④MAX:求出…
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理(三) - 聚合和排序>的下篇. 目录 插入数据 删除数据 更新数据 事务 一.插入数据 1.INSERT 语句的基本语法 --语法: --INSERT INTO <表名>(列1, 列2, ...) VALUES (值1, 值2, ...) --示例INSERT INTO dbo.Shohin…