最近准备用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 WebDriver 学习笔记 API大全 中文API 元素 操作大全
Selenium python之学习笔记,便于Python初学者,欢迎下载
selenium学习笔记和一些中文帮助文档
Selenium学习笔记,基本遇到的问题.
Selenium2学习笔记.txt
selenium2学习笔记(原创),selenium2官方文档的翻译和总结。
selenium运用学习笔记,成功运行,自动化测试,之后会有常用方法总结。
自动化测试:Selenium webdriver学习笔记C#版
博客链接:https://blog.csdn.net/weixin_44679832/article/details/105230245
个人整理的Selenium API学习笔记,基于XMIND,层次分明,帮助学习理解。
Selenium_python之学习笔记
Selenium2 Python 自动化测试实战学习笔记中包含1-8章的学习笔记,和练习的源代码!
网上查资料无意中看见这个东西,觉得挺好玩,原来是用来做web测试的。于是安装了个玩玩python的官网中居然有这个介绍:
爬虫学习笔记(主要涉及scrapy,request,xpath,selenium等).md
Selenium+Eclipse+Junit+TestNG自动化学习笔记
selenium入门学习,个人的笔记
该文档笔记是根据书籍《Selenium Webdriver实战宝典》进行的整理,该文档包含怎么搭建,如何下载,以及一些常用使用到的方法的精简整理,都是一字一码加上自己的理解归纳而出的。是基于Java语言的,希望给需要学习,...