51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2259|回复: 0
打印 上一主题 下一主题

[SilkTest] SilkTest系列---高级篇(Silk4J)之判断对象存在并断言

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-8-8 11:39:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 沅芷湘兰 于 2013-8-8 11:53 编辑

上篇我们主要学习了如何使用Assert去断言一个对象的属性值是否与预期值一致,整个过程看起来貌似没有什么问题,但是在现实测试中,这中间可能会有问题,比如说这个对象是否存在?断言失败后,是值比对不上,还是这个对象根本不存在,或者这个对象是存在的,但是却没有断言中所提到的属性,所以今天我们就需要对一个对象是否存在进行判断,然后再进行该对象的属性值的断言。
        今天我们主要使用Exist()来判断对象是否存在,主要用法如下:
Exist()或Exist(String sLocator)或Exist(String sLocator,Int Timeout);判断后的返回值为“True”或“False”。
将上篇的改进后的程序代码附上,主要部分代码如下所示:
                //判断对象是否存在
                Boolean bExists = desktop.exists("/BrowserApplication//BrowserWindow//INPUT[@id='kw']", 1000);
                if (bExists == true)
                {
                        //获取需要比对的数据
                        String getTextValue;
                        getTextValue = desktop.<DomTextField>find("/BrowserApplication//BrowserWindow//INPUT[@id='kw']").getProperty("value").toString();
                        //比对数据断言
                        Assert.assertEquals("51testing", getTextValue);
                }
                else
                {
                        //如果对象不存在,则断言“用户搜索失败!”
                        Assert.fail("User find fail!");
                }
这段代码的主要操作如下:
先判断对象kw是否存在并将值返回给bExists,如果返回为true则进行下一步的操作,并进行断言。
完整代码如下:
import junit.framework.Assert;

import com.borland.silktest.jtf.Desktop;
import org.junit.Before;
import com.borland.silktest.jtf.BrowserBaseState;
import org.junit.Test;
import com.borland.silktest.jtf.xbrowser.BrowserApplication;
import com.borland.silktest.jtf.xbrowser.BrowserWindow;
import com.borland.silktest.jtf.xbrowser.DomTextField;
import com.borland.silktest.jtf.common.types.MouseButton;
import com.borland.silktest.jtf.common.types.Point;
import com.borland.silktest.jtf.xbrowser.DomButton;

public class testSilk4J {

        private Desktop desktop = new Desktop();

        @Before
        public void baseState() {
                BrowserBaseState baseState = new BrowserBaseState();
                baseState.execute(desktop);
        }

        @Test
        public void Case01() {
                desktop.<BrowserApplication>find("/BrowserApplication").setActive();
                desktop.<BrowserWindow>find("/BrowserApplication//BrowserWindow").navigate("http://www.baidu.com/");
                desktop.<DomTextField>find("/BrowserApplication//BrowserWindow//INPUT[@id='kw']").click(MouseButton.LEFT, new Point(16, 17));
                desktop.<DomTextField>find("/BrowserApplication//BrowserWindow//INPUT[@id='kw']").typeKeys("51testing");
                desktop.<DomButton>find("/BrowserApplication//BrowserWindow//INPUT[@id='su']").click(MouseButton.LEFT, new Point(38, 15));
                //判断对象是否存在
                Boolean bExists = desktop.exists("/BrowserApplication//BrowserWindow//INPUT[@id='kw']", 1000);
                if (bExists == true)
                {
                        //获取需要比对的数据
                        String getTextValue;
                        getTextValue = desktop.<DomTextField>find("/BrowserApplication//BrowserWindow//INPUT[@id='kw']").getProperty("value").toString();
                        //比对数据断言
                        Assert.assertEquals("51testing", getTextValue);
                }
                else
                {
                        //如果对象不存在,则断言“用户搜索失败!”
                        Assert.fail("User find fail!");
                }
        }

}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-23 03:34 , Processed in 0.072721 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表