网页开发中经常需要使用鼠标滚轮事件。Chrome 和 IE 各版本浏览器都支持 onmousewheel 事件,表示鼠 标滚轮滚动事件。但是火狐浏览器不支持这个事件,它支持的是自己的 DOMMouseScroll 事件。给一个盒子添 加鼠标滚动事件代码如下: //除了火狐之外这样添加监听: box.onmousewheel = mousewheelhandler; //火狐特有,必须用 DOM2
拖拽的实现原理 拖拽是指在某元素上按住鼠标左键的同时移动鼠标,此时可以将元素进行移动,鼠标左键松开之后,将不能 拖拽元素了。熊猫图片在一个 div 盒子中,按住鼠标可以拖拽它,但 是不能将这个图片拖拽出盒子边框。拖拽的实现需要使用鼠标事件提供的鼠标位置。原理非常简单:当鼠标指针按下的一瞬间,记录鼠标指针相 对页面顶端的距离,保存为变量 startX、startY。当鼠标移动的时候,实时计算鼠标指针
DOM 提供了创建、删除、克隆节点等操作的函数,给编程带来了极大的便利。 创建节点基本语法 在网页上创建一个新节点需要使用 document.createElement()方法,语法如下: var o = document.createElement("标签名"); create 是英语“创建”的意思,Element 是英语“元素”的意思,createElement()用来“凭空创造”一
元素节点的 parentNode 属性将返回它的父节点。父节点一定是 nodeType 等于 1 的元素节点。 例如制作一个小特效:页面上罗列一些复选框,当用户勾选某个复选框的时候,它的父元素将改变背景颜色; 当用户去掉勾选复选框的时候,它的父元素的背景颜色恢复。 代码如下: <!DOCTYPE html> <head> <meta charset=UTF-8>
如果要操作某个 HTML 元素,首先要做的事情就是得到这个标签。通俗的说,就是把 HTML 标签“拿到” JavaScript 里面来。DOM 提供了几个非常实用的得到元素的方法。 getElementById() document 对象提供 getElementById()方法,可以通过 id 属性来得到某一个 HTML 标签: document.getElementById("id"
题目:将字符串“1234567”变为“1,234,567”,即每三位之间加上逗号分隔符。 本题需要使用新的“字符边界”知识点。正则表达式中有一个特殊字符“/B”,表示“非单词边界”,或者 “字母边界”。例如: "i love javascript".replace(/\B/g , "★"); //将所有字母边界替换为★再来认识一个新的“位置表示法”:(?=$),它特别像英语中的“地点状语从句”,描
算法思想 二分排序也称快速排序(Quicksort),是对冒泡排序的一种改进。二分排序由美国工程师 Hoare 在 1962 年提出。基本思想是:通过一趟排序将数组分为两组,其中一组的所有数字都比另外一组的所有数字都要小,然 后继续按此方法对这两部分数字再一次进行分组,递归进行下去,使整个数组完成排序。 假设数组[55, 33, 44, 12, 67, 9, 88, 37, 38, 3
算法思想 冒泡排序是编程领域中常见的算法。冒泡排序的算法是:重复地走访要排序的数列,一次比较两个元素,如 果它们的顺序错误就把它们交换过来,走访数列的工作重复地进行直到没有项再需要交换。 比如,现在要给数组[33, 55, 44, 11, 22]进行排序,使用冒泡排序法,具体执行过程如下: 【第 1 趟排序】从数组的末端开始两两比较比较,如果较小的数在较大的数后面,则交换两个数的位置。
当用户输入偶数 n 的时候,就要从 2 开始(2 是最小的质数),到这个 n / 2 的一半结束(这个数字的一 半是最大的拆分可能)一个一个的去实验,看看被拆分的两个数字是不是质数,如果是,就输出它们的结果。 代码如下: //判断数字是否是质数 function isPrimeNumber(a){ for(var i = 2 ; i < a ; i++){ if(a % i == 0) re
案例描述 哥德巴赫(Goldbach C.)是 17 世纪德国著名数学家,它层提出一个猜想:任一大于 2 的偶数都可写成两 个质数之和。比如偶数 6 可以写成质数 3 和质数 3 的和;偶数 18 可以写成质数 7 和质数 11 的和。 人们用大量的偶数进行试验,都没有反例可以驳倒哥德巴赫猜想,所以大家公认为这个猜想是正确的。但从 17 世纪哥德巴赫提出这个猜想开始,虽然有非常多的数学家尝试证明这
案例描述 某游乐园的门票价格如表 3-3 所示。 表 3-3 某游乐园的票价方案 年龄大于等于 10 岁 年龄小于 10 岁 平日 300 140 周末 500 210 编写程序,让用户输入年龄和星期几,弹出对话框显示门票价格。星期几用阿拉伯数字 0、1、2、3、4、5、 6 表示,其中 0 表示周日。 案例分析 本案例又是非常经典的双层 if 结构体嵌套的使用场景。当出现“大条件”套“
案例描述 BMI 指数(Body Mass Index,身体质量指数)是用体重(以公斤为单位)除以身高(以米为单位)的平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的标准。BMI 指数比对胖瘦程度见表 3-2。 表 3-2 BMI 指数参考表 BMI 值 分档 低于 18.5 过瘦 18.5 ~ 24 (不含) 正常 24 ~ 28 (不含) 过胖 28 ~ 32 (不含) 肥胖
JavaScript 中变量的名字必须符合“标识符的命名规范”:只能由字母、数字、下划线、美元符号组成, 且第一个字符不能是数字。 根据这个规则,下面的变量定义都是合法的: var a1; var abc; var number_1; var $0_0$; var _; 虽然这些变量都是合法的,但是有经验的工程师通常会给变量起一些有意义的名字。比如变量 maxEnglishTestScore,我们
引言 变量是 JavaScript 中最基本的概念,它是程序中“指代”数据的符号。这和我们中学时“代数”中学习的 x、y、z 等字母非常相似。比如我们可以用字母 x 表示 3,用字母 y 表示 13,从而 x + y 结果就是 16。 变量被存储在内存中,供程序运行时临时使用。当网页被关闭后,所有的变量将被自动销毁。变量的定义和赋值 JavaScript 中使用 var 定义变量。var 是英语中
首先,在 GitCafe 注册帐号并登录,选择创建一个项目。填写项目相关信息点击“创建”Git 的基本命令: 在任意目录下输入“git”,查看 git 所提供的命令。 Ubuntu root@fnngj-H24X:/home/fnngj/Python/pyse# git usage: git [--version] [--exec-path[=<path>]] [--html-path
当我们的自动化测试项目的实践中逐渐成熟并形成一定规模之后,自动化测试的脚本开发与维护就不 是一人所能完成的,那么必定会有新人员参与到自动化测试脚本的开发与维护工作。那么多人协同开发必 定需要引入版本控制工具来对项目进行控制和管理。 Git 是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而
在学习 Selenium Grid 的时候,你可能会存在疑问,Selenium Grid 不是可以做并行测试么?在这里更 正一下,“分布式”和“并行”是两个完全不同的概念,分布式只负责将一个测试脚本可调用不同的远程 环境来执行;并行强调“同时”的概念,它可以借助多线程或多进程技术并行的来执行测试脚本,从而缩 短测试脚本的运行时间。 这一章我们将学习 Python 的多线程/多进程技术,并将其应用到
到目前为止,我们用到的浏览器驱动有 Friefox(Selenium 集成) 、 Chrome(chromedriver) 以及 IE (IEDriverServer)等, 除此 WebDriver 还支持脚本在其它驱动下运行。 WebDriver 所支持的驱动: 驱动 说明 Firefox Driver 包含在各语言的 selenium(WebDriver) 包里, 这也是为什么安装完 sele
我们希望测试结果都保存到文件中,这样方便查看。在此之前很有必要梳理一下当测试项目的目录结 构: test_project/test_case/test_login.py ----测试用例 /test_case/public/login.py ---测试用调用的公共模块 /test_case/public/__init__.py /test_date/login.xml -----用于存放测试数据文
接下来我们要创建一组测试用例,用于验证 126 邮箱的登录功能,在此之前我们需要先编写好测试用 例。 用例 id test_login.py 登录功能验证 步骤: 动作 数据 验证点 1 打开登陆页 http://www.126.com 2 不输入用户名、密码登陆 null,null 用户名或密码不能为空 3 只输入用户名,密码为空登录 username,null 用户名或密码不能为空 4 用户名
Action 有两种形式: action 和 actionAndWait, action 会立即执行,而 actionAndWait 会假设 需要较长时间才能得到该 action 的相响,而作出等待,open 则是会自动处理等待时间。 open open(url) - 在浏览器中打开 URL,可以接受相对和绝对路径两种形式。 - 注意:该 URL 必须在与浏览器相同的安全限定范围之内。Comman
相信有不少读者学习 Selenium 是从 Selenium IDE 开始的,做为嵌入在 Firefox 浏览器的一个小插件, 结合浏览器提供了脚本的录制、回放以及编辑脚本功能,可以帮助我们快速理解和学习自动化测试。 按照本书的作者的目的是帮助读者开发自动化测试脚本,不应用把精力放这个小插件的学习,但事实 上对 Selenium IDE 做为 Selenium 的成员之一,任何一本讲 Seleni
如今大多数的 web 应用程序使用 AJAX 技术。当浏览器在加载页面时,页面内的元素可能并不是同时 被 加 载 完 成 的 , 这 给 元 素 的 定 位 添 加 的 困 难 。 如 果 因 为 在 加 载 某 个 元 素 时 延 迟 而 造 成 ElementNotVisibleException 的情况出现,那么就会降低的自动化脚本的稳定性。 WebDriver 提供了两种类型的等待:显式等
有时候我们在测试时需要使用 Tab 键将焦点转移到下一个元素,Keys()类提供键盘上几乎所有按键的 方法,前面了解到 send_keys()方法可以模拟键盘输入,除此之外它还可以模拟键盘上的一些组合键,例 Ctrl+A、Ctrl+C 等。 xx.py …… #coding=utf-8from selenium import webdriver #引入 Keys 模块 from selenium.
在面向对象编程的世界里一切皆为对象,那么抽象的一组对象就是类。例如,汽车就是一个类,张三 家的奇瑞汽车就是一个具体的对象。在 Python 中用 class 关键字来创建类。 xx.py class A(): def add(self,a,b): return a+b count = A() print count.add(3,5) 打印结果: >>> =============
由于 Selenium 基于 web 的自动化测试技术,我们的要操作的对象是 web 页面,所以有必要对前端的 技术和工具做一个简单的介绍。 L HTML 简介 HTML(Hyper Text Markup Language)中文为超文本标记语言,HTML 是网页的基础,它并不是一种 编程语言,而是一种标记语言(一套标记标签),但我们可以在 HTML 标签中嵌入各种前端脚本语言,如 VBScrip
元类(metaclass)是一个 Python 特性,许多人认为它是这门语言最难的内容之一,因 此许多程序员都避免使用它。事实上,一旦你理解了几个基本概念,它并不像听起来那么 复杂。作为回报,了解这一特性之后,你能够完成一些其他方法无法完成的事情。 元类是定义其他类(型)的一种类(型)。为了理解其工作方式,最重要的是要知道, 定义了对象实例的类也是对象。因此,如果它也是对象的话,那么一定有与其相关
第 2 章介绍过装饰器语法,其简单形式如下: def decorated_function(): pass decorated_function = some_decorator(decorated_function) 这清楚地展示了装饰器的作用。它接受一个函数对象,并在运行时修改它。其结果就 是,基于前一个函数对象创建了一个同名的新函数(或其他任何内容)。这甚至可以是一个 复杂的操作,根据原始函
Python 程序员在交互式解释器会话上花费了大量时间。它非常适合测试短代码片段、 访问文档、甚至在运行时调试代码。默认的 Python 交互式会话非常简单,并没有类似 tab 补全或代码内省助手(code introspection helper)的许多功能。幸运的是,对默认 Python shell 的扩展和定制是非常简单的。 用一个启动文件就可以配置交互式提示符。Python 在启动时会寻找
目前,Vagrant 似乎是最流行的工具,用一种简单方便的方法来创建并管理开发环境。 它可用于 Windows、Mac OS 和一些常见的 Linux 发行版,没有任何其他依赖。Vagrant 以 虚拟机或容器的形式来创建新的开发环境。具体实现取决于虚拟化供应商(provider)。 VirtualBox 是与 Vagrant 安装程序绑定的默认供应商,但也有其他供应商。最有名的供应商 是 VMw
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号