心念旧安,夙夜忧叹。

QTP智力大闯关答案公布

上一篇 / 下一篇  2012-11-08 13:04:26 / 个人分类:原创文章

说明下,其实三道题目都很简单,不是什么特别高深、特别新颖的东西。Web自动化做的多的朋友基本一看就知道怎么回事了。呵呵!

t;? P/SK}0

&cRd!qJ;P~M0
QTP智力大闯关之一:你们知道这效果用QTP是怎么实现的吗?》

b&d'f.V px0KVb7B0
答案:
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
Browser(":=").Page(":=").Sync
Browser(":=").Navigate "http://www.baidu.com/"
Browser(":=").Page(":=").WebEdit("name:=wd").Object.insertAdjacentHTML"beforeBegin","我想在百度的文本框里输入两行字,怎么输呢?想了半天,嗯,找到方法了,瞧!这不是吗?呵呵!"

I4I:hl&|c#c}0
云层的方法和我不同,详见他的帖子《锋哥出招我也要对一下》, http://www.51testing.com/?uid-104-action-viewspace-itemid-828583

q X7n0E jF}O3@0
他用的代码是:
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
Browser(":=").Page(":=").Sync
Browser(":=").Navigate "http://www.baidu.com/"
Browser(":=").Page(":=").WebEdit("name:=wd").Object.outerHTML= "<div>51testing的锋哥说百度一行太无聊我要来两行,云层就说既然你来两行我也要来两行,不是一个技术也能实现一样的效果哟!!</div>"
51Testing软件测试网Ti3}4s8H |7e3? S
OK,现在解释下 insertAdjacentHTML outerHTML 的不同。
insertAdjacentHTML : 在指定对象所在的HTML代码中动态插入一段代码,邻近的位置有四种:beforeBegin是插入到标签开始前,afterBegin是插入到标签开始标记之后,beforeEnd是插入到标签结束标记前,afterEnd是插入到标签结束标记后。  insertAdjacentHTML 的效果有点类似于 EmbedScript/RunScript,只不过一个是加HTML,一个是加JavaScript,而当在insertAdjacentHTML 中插入"<script>...</script>"其效果就接近于EmbedScript/RunScript了。
关于EmbedScript/RunScript的区别,参考我另一篇博文: 《QTP11中EmbedScript. 和 RunScript. 的区别》
51Testing软件测试网%u`aa:@)Va
51Testing软件测试网A6F7~\9i&`B
outerHTML  在指定对象所在的HTML代码中做Replace操作,也就是会把原有对象先删除,你可以“造”一个“克隆品”来替代它。

$D-N]qA&w.i^z^F0
云层说的“不是一个技术也能实现一样的效果”指的就是它们。呵呵,云层,我这里替你爆料了,别怪我哟,我们可以交换友情链接哈!

j fC7s k!w0
51Testing软件测试网*q0Ey2B5p,phB5z
这道题的关键技术还是借助强大的insertAdjacentHTML 
答案:
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
Browser(":=").Page(":=").Sync
Setting.WebPackage("ReplayType") = 1
Browser(":=").Navigate "http://www.baidu.com/"
Browser(":=").Page(":=").Sync
Browser(":=").Page(":=").WebEdit("name:=wd").Click
Setting.WebPackage("ReplayType") = 2
Browser(":=").Page(":=").WebEdit("name:=wd").Set "p"
Browser(":=").Page(":=").WebTable("html tag:=TABLE").WebElement("html tag:=TD","index:=0").Object.insertAdjacentHTML"afterBegin", "今天锋哥无聊<br/>闲的蛋疼<br/>不是一般的疼<br/>云层跟我一样蛋疼<br/>好吧,看看谁更疼<br/><p/><p/><p/><p/><p/><p/><p/><p/>在哪里见过这么无聊的QTP<br/>今天锋哥无聊<br/>闲的蛋疼<br/>不是一般的疼<br/>云层跟我一样蛋疼<br/>好吧,看看谁更疼<br/><p/><p/><p/><p/><p/><p/><p/><p/>在哪里见过这么无聊的QTP<br/>今天锋哥无聊<br/>闲的蛋疼<br/>不是一般的疼<br/>云层跟我一样蛋疼<br/>好吧,看看谁更疼<br/><p/><p/><p/><p/><p/><p/><p/><p/>在哪里见过这么无聊的QTP"

+M|!PpG9YZ0
51Testing软件测试网!z&p;u]7\ pN7Z
注意:因为百度搜索输入框的下拉框里的内容是Ajax动态载入的,所以要定位这个对象最好先外面嵌套一层WebTable对象,然后使用TD对象(Table Data),因为TD有好几个,并且我们想从第一个开始,所以必须指定 index:=0 来定位!
51Testing软件测试网4V#t/h ]&^ ck
http://www.51testing.com/index.php?uid-35-action-viewspace-itemid-828609
答案:
  单纯靠录制回放是解决不了的,关键在于checkbox的灰选状态要用到它的indeterminate属性。以下是代码:
SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe"
Browser(":=").Page(":=").Sync
Browser(":=").Navigate "http://login.tmall.com/"
Browser(":=").Page(":=").Frame("micclass:=Frame").WebCheckBox("name:=longLogin").Object.indeterminate = True
51Testing软件测试网Ee n qze?a3E
好了,三道题目答案公布完毕,你们看,是不是非常简单呢? :)

TAG:

引用 删除 yangyangtbs   /   2012-11-09 17:50:44
强烈要求每周一期!
大师兄--绝迹江湖 引用 删除 songfun   /   2012-11-09 10:39:02
既然是智力大闯关,总不可能简单到“录制”加“回放”就搞定了吧,这个也太欺负人了。。。
WANDY的个人空间 引用 删除 WANDY   /   2012-11-09 10:13:14
原帖由songfun于2012-11-09 08:42:18发表
ON是表示选中,OFF表示不选中,如果代码运行能灰选,那是你QTP有问题了,得卸载重装了,呵呵


= = 好吧,看题不仔细,灰选录制是不可能的了。。 我面壁去。
大师兄--绝迹江湖 引用 删除 songfun   /   2012-11-09 08:42:18
ON是表示选中,OFF表示不选中,如果代码运行能灰选,那是你QTP有问题了,得卸载重装了,呵呵
大师兄--绝迹江湖 引用 删除 songfun   /   2012-11-09 08:41:21
本来就可以录制的,但是效果出不来啊
WANDY的个人空间 引用 删除 WANDY   /   2012-11-08 15:50:17
5
WANDY的个人空间 引用 删除 WANDY   /   2012-11-08 15:47:06
Browser("天猫tmall.com—上天猫,就购了").Page("天猫tmall.com—上天猫,就购了").Frame("Frame").WebCheckBox("WebCheckBox").Set "OFF"
Browser("天猫tmall.com—上天猫,就购了").Page("天猫tmall.com—上天猫,就购了").Frame("Frame").WebCheckBox("longLogin").Set "ON"
Browser("天猫tmall.com—上天猫,就购了").Page("天猫tmall.com—上天猫,就购了").Frame("Frame").WebCheckBox("WebCheckBox").Set "ON"
Browser("天猫tmall.com—上天猫,就购了").Page("天猫tmall.com—上天猫,就购了").Frame("Frame").WebCheckBox("longLogin").Set "OFF"

峰哥,我泪流满面- -。居然录制出来了。
 

评分:0

我来说两句

日历

« 2024-03-01  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 452875
  • 日志数: 138
  • 图片数: 4
  • 建立时间: 2006-11-26
  • 更新时间: 2013-08-30

RSS订阅

Open Toolbar