`
silentlakeside
  • 浏览: 107295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Selenium 1.0的一些经验

阅读更多
  1. Selenium只能判断页面是否加载完成(waitForPageLoad),当页面使用AJAX加载动态内容的时候,会出现页面已经加载完成但是真正的内容可能还没加载完,这时候测试就会无法进行。这时候可以使用isElementPresent判断某个HTML元素是否已经创建或者使用getText判断某个元素的文本是否与预定的值一致,这样可以判断动态内容是否已经加载。当然期间要加入等待的代码(Thread.sleep)和对超时的控制。
    	protected void waitForElement(String locator, int timeout)
    			throws InterruptedException {
    		for (int second = 0;; second++) {
    			if (second >= timeout) {
    				fail("............timeout............");
    			}
    			try {
    				if (selenium.isElementPresent(locator)) {
    					break;
    				}
    			} catch (Exception e) {
    			}
    			Thread.sleep(1000);
    		}
    	}
    
     
  2. 在页面上对表单数据进行验证的时候,我们可能会在用户输入的时候就进行验证,而不是等待用户提交的时候。一般有两种做法。一种是每输入一个字符就验证(一般用keyPress、keyDown、keyUp等事件),例如某个文本框只能输入数字,用type输入数据是不会触发验证的,这时可以用keyPress等方法输入单个数据来触发验证。另一种是在失去焦点的时候验证,例如验证textarea里的数据不会超长,这时用type输入数据也是不会触发验证的,即使用focus切换焦点到别的HTML元素上也大多数情况下不管用。这时候可以使用fireEvent("", "blur")来触发失去焦点事件。
  3. 运行selenium test case的时候有时会出现Access is denied的IE错误,这应该是selenium的一个bug,可以通过修改selenium server.jar里的core\scripts\htmlutils.js来修正(在函数openSeparateApplicationWindow的前两行加入try/catch以捕获该异常),具体内容可以参考http://www.nearinfinity.com/blogs/stephen_mouring_jr/selenium_mojo_access_is_denied.html#more
  4. 有时候我们会将一个iframe作为编辑器使用,如iframe的内容是
    <html>
        <body id="editor" contentEditable="true">
        </body>
    </html>
     包含这个iframe页面的代码是
    <html>
        <body>
            <p>Editor</p>
            <iframe id="frame1" src="frame1.htm">
            </iframe>
        </body>
    </html>
     selenium test case的代码可以这样写
    		selenium.type("//body[@id='editor']", "werwerwqerqwer");
    		assertEquals("werwerwqerqwer", selenium.getText("//body[@id='editor']"));
    
     不需要使用selectFrame来选择要操作的iframe。对于输入的内容,有些跟HTML冲突的必须做一些转换,例如<,>,"等要转换成实体如&lt;,&gt;,&quot;。例如如果要输入换行,则直接使用<br/>即可(不需要做转换),下面是一个例子
    		StringBuffer content = new StringBuffer();
    		content.append("&lt;html&gt;").append("<br/>");
    		content.append("&lt;body&gt;").append("<br/>");
    		content.append("&lt;a href=&quot;test.jsp&quot;&gt;link&lt;/a&gt;")
    				.append("<br/>");
    		content.append("&lt;br/&gt;").append("<br/>");
    		content.append(
    				"&lt;div class=&quot;content&quot;&gt;hello world&lt;/div&gt;")
    				.append("<br/>");
    		content.append("&lt;/body&gt;").append("<br/>");
    		content.append("&lt;/html&gt;").append("<br/>");
    		selenium.type("//body[@class='editbox']", content.toString());
    
     实际上输入的是一段HTML文本
    <html>
    <body>
    <a href="test.jsp">link</a>
    <br/>
    <div class="content">hello world</div>
    </body>
    </html>
    
     
分享到:
评论

相关推荐

    Selenium1.0

    Selenium 1.0 Testing Tools, 虽然是1.0,但是感觉写得不错,喜欢的亲们可以下载看看。

    Selenium 1.0 初学者指南

    Selenium 1.0 初学者指南 基于Selenium 1.0 Testing Tools :Beginners Guide翻译

    selenium1.0版本升级

    本文档描述了selenium1.0版本升级过程,因升级方法与低版本不一样,所以出此文档帮助。 环境:RIDE 0.43.3 running on Python 2.7.1.

    Selenium深入浅出1.0

    Selenium深入浅出,是我写的Selenium中文教程,包括了参考手册和Ext下Selenium的使用,Selenium下调用JavaScript等高端使用技术。

    selenium1,0与2.0的区别

    主要是针对以selenium1.0与2.0在实际使用当中的区别进行整理

    selenium+python实战V1.0-培训版

    本文为selenium+python培训PPT,包含框架、测试报告、自动发送邮件等。 包含:环境部署、Selenium自动化工具介绍、UnitTest框架介绍、Python语法介绍 、Selenuim+Python实战以及常见问题。配套电子教程后续会陆续奉...

    Selenium 1.0 Testing Tools - Beginners Guide - 2010

    Written with a fast-paced but friendly and engaging approach, this Packt Beginner's Guide is designed to be placed alongside the computer as your guide and mentor. Step-by-step tutorials are bolstered...

    SeleniumAutoTestFramework(Selenium 2.0 自动化教程)

    Selenium1.0不能处理一下事件: 1)本机键盘和鼠标事件 2)同源策略XSS/HTTP(S) 3)弹出框,对话框(基本身份认证,自签名的证书和文件上传/下载) Selenium2.0有简洁的API,WebDriver和WebElement对象,更好的...

    Selenium文档 v1.0(英文)

    Selenium文档 v1.0(英文) Selenium Documentation 文档 1.0

    基于Python语言的Selenium自动化测试思维导图

    Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾经是 Selenium 的竞争对手)。也就是说 Selenium 2 是 Selenium 和 WebDriver 两个项目的合并,即 Selenium 2 兼容 ...

    Packtpub.Selenium.1.0.Testing.Tools.Beginners.Guide.Nov.2010.rar

    Packtpub.Selenium.1.0.Testing.Tools.Beginners.Guide.Nov.2010.rar

    Selenium的JavaClientDriver1.0API参考手册【chm】

    Selenium的JavaClientDriver1.0API参考手册【chm】 Selenium是一个测试Html页面的测试程序。这是使用Java编写Selenium测试的API参考。Selenium使用JavaScript的方式来控制浏览器中的html代码。实现对WEB界面的自动化...

    Selenium 基本介绍文档

    Selenium 1.0 初学者指南.pdf Selenium私房菜(新手入门教程).pdf [零成本实现Web自动化测试-基于Selenium和Bromine].温素剑.pdf Selenium 中文文档 .pdf selenium2.0_中文帮助文档.doc 具体见附件

    Selenium框架V1.0.exe

    特点:无需编码就可以实现自动化测试,降低自动化测试的门槛 优势: 1.基于关键字驱动框架技术,脚本复用度高 2.综合应用多种识别技术,对对象识别成功率99% ...6.支持基于selenium框架的脚本编写

    selenium-rc

    selenium1.0的自动化测试,selenium-remote-control-1.0.3,包含selenium-java-client-driver-1.0.1、selenium-php-client-driver-1.0.1等等

    SELENIUM基础知识PPT

    这是selenium 1.0不是WEBDRIVER。都是一些入门知识,可以用来做简单培训教材。

    selenium2.0_中文帮助文档

    Selenium2.0帮助文档 第1章 Webdirver基础 2 1.1 下载selenium2.0的lib包 2 1.2 用webdriver打开一个浏览器 2 1.3 打开测试页面 2 1.4 GettingStarted 2 ...第6章 在selenium2.0中使用selenium1.0的API 14

Global site tag (gtag.js) - Google Analytics