最近准备用Selenium自动化录制测试脚本,稍微总结一下。
Selenium的主页是http://seleniumhq.org
Selenium包括很多组件,其中我现在用的是Selenium RC和Selenium IDE。Selenium IDE是Firefox的一个插件,我们可以使用它录制页面操作。
Selenium IDE安装完毕之后,可以从工具菜单中激活,然后我们就可以在firefox中访问需要测试的网页,进行各种页面操作,Selenium IDE在这个过程中会记录我们的页面控件和动作。完成录制之后,Selenium IDE生成一个HTML文件保存脚本,比如:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.baidu.com/" />
<title>baidu</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">baidu</td></tr>
</thead><tbody>
<tr>
<td>open</td>
<td>/</td>
<td></td>
</tr>
<tr>
<td>type</td>
<td>kw</td>
<td>ckword</td>
</tr>
<tr>
<td>clickAndWait</td>
<td>sb</td>
<td></td>
</tr>
</tbody></table>
</body>
</html>
我们可以导出成Java文件,比如:
package com.example.tests;
import com.thoughtworks.selenium.*;
import java.util.regex.Pattern;
public class NewTest extends SeleneseTestCase {
public void setUp() throws Exception {
setUp("http://www.baidu.com/", "*chrome");
}
public void testNew() throws Exception {
selenium.open("/");
selenium.type("kw", "ckword");
selenium.click("sb");
selenium.waitForPageToLoad("30000");
}
}
只要导入相应的selenium和Junit包就可运行。
有一点需要注意的是在回放脚本时,应该添加setSpeed方法,参数是ms,因为Selenium IDE虽然可以选择回放速度(慢——中——快),但实际上即使选择慢速,Selenium IDE仍然运行的有些快,导致其在顺序执行用户操作时,可以发生没等到页面加载完毕就执行下一个命令的现象,导致下一个命令找不到响应的页面控件。除了setSpeed之外,Selenium IDE还可以添加大量的命令。具体见Selenium IDE界面。
另外一个关键是如何识别页面控件。自动化的核心是录制的控件识别方法可以复用,Selenium IDE支持的识别格式包括ID、Name、XPath:attributes、DOM index和XPath:position,而且允许正则表达式,所以非常灵活,根据我使用的情况来看,对于富客户端应用,控件ID通常都增加了一个随机数,不适合做识别,Name还不错,但是如何这个控件Name带有版本信息,比如控件在不断升级,从1.3升到1.4,那么Name可以会失效,要小心。XPath:position我用的最多,也觉得定位最准。但是Selenium IDE有时抓不到某些操作,比如,可以某一个Logout链接,是由span来实现的,此时Selenium IDE抓不到,此时可以XPath:attributes识别,这样写://span[text()='Log out'],搞定。
对于Selenium IDE,还有很多细节需要学习,比如正则表达式的应用,如何写出通用的识别方法,等等。我准备使用Selenium IDE录制脚本,然后导出成java文件,做一些修改之后用Selenium RC驱动。
分享到:
相关推荐
1.python-web自动化办公-selenium学习笔记 2.适合刚刚入门selenium开发人员查询使用 3.web自动化办公,例如节省办公妹子keyin时间 4.学习成本低,操作难度不大。 备注:需要html,javascript , css 前端基本功底,...
**Selenium学习笔记源代码** Selenium是一款强大的自动化测试工具,尤其在Web应用程序的测试领域,它被广泛应用。本学习笔记源代码旨在帮助开发者和测试工程师深入理解和掌握Selenium的基本用法,通过实际操作和...
在本学习笔记中,首先提到了编码问题,指出了源程序需要使用utf-8编码,这对于中文字符的支持尤为重要。接下来,笔记展示了如何导入selenium库中的webdriver模块,这是Selenium自动化测试的基础。 示例代码中演示了...
【Selenium2学习笔记】 Selenium2,也被称为Selenium WebDriver,是一个强大的自动化测试工具,用于模拟用户在网页上的各种交互行为。它提供了一个全面的工具集,包括Selenium IDE、WebDriver和Selenium Grid,以...
### Selenium Java 学习笔记知识点总结 #### 一、Selenium简介与安装配置 - **Selenium概述**:Selenium 是一套完整的Web应用程序测试工具,主要用于自动化Web应用测试,能够模拟用户行为,支持多种浏览器环境。 - ...
本文主要关注 Selenium 的三个组成部分:Selenium Core、Selenium IDE 和 Selenium Remote Control (RC)。 首先,Selenium Core 是整个框架的基础,包含一组 JavaScript 库,用于控制浏览器的行为。这些库可以通过...
### Selenium WebDriver 学习笔记知识点详解 #### 一、元素定位 Selenium WebDriver 提供了丰富的API用于元素定位,常见的定位策略包括: - **ID**:`driver.findElement(By.id("elementId"))` - **Name**:`driver...
除了上述基本知识点,文档中提到的其他元素如“授客QQ”、“博客链接”、“交流群信息”等,属于作者个人的联系方式与资源分享,并非直接的Selenium或Python学习知识点。在正式的IT知识分享中,我们更多关注技术和...
自动化测试:Selenium webdriver学习笔记 C#版 在本篇笔记中,我们将讨论 Selenium webdriver 的自动化测试中的对象定位方法。对象定位是自动化测试中非常重要的一步骤,它决定了我们的测试脚本是否能够正确地找到...
个人整理的Selenium API学习笔记,基于XMIND,层次分明,帮助学习理解。
### Selenium2学习笔记知识点概述 #### 一、SQL与Selenium混搭场景解析 在给定的部分内容中,出现了一段SQL代码与Selenium代码的混合。这表明文档可能涉及了如何在Selenium自动化测试中集成数据库操作。下面将详细...
总的来说,学习Selenium需要理解WebDriver接口,熟悉各种元素定位方法,以及掌握如何通过WebDriver进行页面操作。同时,利用Selenium IDE能简化测试脚本的编写,提高测试效率。通过不断实践和查阅官方文档,可以逐渐...
在本篇学习笔记中,我们将深入探讨"Selenium2 Python 自动化测试"这一主题,它是一种广泛应用于Web应用测试的技术,结合Python编程语言,能够实现高效、可维护的自动化测试用例。Selenium2(也被称为Selenium ...
本文档旨在整理和分享Selenium Python的学习笔记。在探索Selenium Python的过程中,我们不可避免地会遇到各种问题。因此,本文档的编写目的在于为那些寻求帮助的朋友们提供指导和参考。对于对此领域感兴趣的读者,...
【Selenium与Python结合使用详解】 Selenium是一个强大的自动化测试工具,主要用来模拟真实用户对Web应用程序的操作。...通过深入学习和实践,你可以掌握更多高级技巧,为Web自动化测试带来更大的便利。
爬虫学习笔记(主要涉及scrapy,request,xpath,selenium等).md
Selenium 入门学习笔记 一、自动化测试概念 自动化测试是由机器执行的测试行为,通过程序或工具来替代、辅助人工测试的手段。自动化测试的优点包括完成重复性工作、提高工作效率、抽象业务逻辑、使每次测试无差异...
### Selenium+Eclipse+JUnit+TestNG自动化测试学习笔记 #### 一、环境搭建与配置 **1. 安装 JDK** - **版本**: JDK 1.7 - **下载地址**: ...