`
silentlakeside
  • 浏览: 109170 次
  • 性别: 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

    在Selenium1.0这本书中,作者David Burns以自己作为Selenium核心开发者和测试人员的经验,逐步引导读者了解和掌握Selenium框架的使用方法。David Burns在书籍中介绍了如何利用Selenium进行Web应用测试的各个方面,...

    selenium1.0版本升级

    ### Selenium 1.0 版本升级指南 随着软件测试技术的发展,自动化测试工具Selenium不断更新迭代,为用户提供更多高效、便捷的功能。对于已经习惯使用Selenium 1.0版本的用户来说,升级到更高版本是提升工作效率的...

    Selenium 1.0 Testing Tools - Beginners Guide - 2010

    《Selenium 1.0 Testing Tools - Beginners Guide - 2010》这本书旨在为初学者提供一个快速上手Selenium 1.0的指南,帮助他们通过实际例子和实验学习如何创建成功的测试。 书中涵盖了Selenium的多个核心组件,包括...

    Selenium深入浅出1.0

    ### Selenium深入浅出1.0 知识点详解 #### Selenium概述 Selenium是一个强大的自动化测试框架,主要用于Web应用的功能性测试。它支持多种编程语言(如Java、Python、C#等),并且能够运行在不同的操作系统上。...

    selenium1,0与2.0的区别

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

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

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

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

    《Packtpub Selenium 1.0 Testing Tools Beginners Guide Nov 2010》是一本针对初学者的Selenium测试工具指南,旨在帮助读者理解和掌握自动化Web应用测试的基础知识。Selenium是一个广泛使用的开源自动化测试框架,...

    SeleniumAutoTestFramework(Selenium 2.0 自动化教程)

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

    Selenium2.0+Webdriver学习【1】

    #### 一、Selenium2.0与Selenium1.0的区别 Selenium是一款广泛使用的Web自动化测试工具,旨在帮助软件开发者和测试工程师轻松地编写自动化测试脚本来验证Web应用的功能。随着互联网的发展以及Web应用的日益复杂,...

    Selenium2.0之WebDriver学习总结(1)

    Selenium2.0,又称为WebDriver,是对Selenium1.0的重大改进,解决了1.0版本中存在的一些关键限制。Selenium1.0虽然支持多种编程语言,但其依赖于HTTP库,并且由于完全基于JavaScript,遇到浏览器的安全策略限制时...

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

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

    Selenium文档 v1.0(英文)

    ### Selenium文档 v1.0(英文) #### NotetotheReader - **Selenium文档概述**:这份文档旨在为用户提供一个全面且深入理解Selenium自动化测试工具的指南。 - **目标受众**:本文档适合所有对Selenium感兴趣的人员...

    seleniumpython自动化测试实战PPT.pptx

    Selenium 家谱中,Selenium 1.0 和 Selenium 2.0 是两个主要版本,其中 Selenium 2.0 = Selenium 1.0 + WebDriver。 在环境搭建方面,PPT 介绍了 Windows 和 Linux 平台上的 Selenium 安装过程,包括安装 Python、...

    selenium books

    尽管标题中提到的是"Selenium 1.0",但这个版本的Selenium现在已经被Selenium 2(也称为WebDriver)所取代,因为后者提供了更好的跨浏览器兼容性和更直观的API。然而,对于想要了解Selenium早期版本或者对Selenium...

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

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

    Selenium2.0中文帮助文档

    Selenium2.0兼容了Selenium1.0的部分API,因此,这部分内容帮助老用户从Selenium1.0平滑过渡到Selenium2.0,并利用已经熟悉的API来编写测试脚本。 整个文档的宗旨在于帮助用户在最短的时间内掌握Selenium2.0的使用...

    Selenium 基本介绍文档

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

Global site tag (gtag.js) - Google Analytics