robinpipi 发表于 2012-12-6 15:52:14

【已解决】qtp11 独立的action之间相互调用时,datatable的用法

本帖最后由 黑羽祭 于 2012-12-12 17:28 编辑

新建test1: Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")
新建test2:调用test1:RunAction "Action1 ", oneIteration


运行test2,报错:


请问不同action之间调用的时候,datatable应如何处理呢

robinpipi 发表于 2012-12-6 16:09:31

这个问题一直没解决,请各位费心

jack_loo 发表于 2012-12-6 17:56:10

你是采用调用副本的方式调用的吧?
把脚本Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")中的“Action1”改成“Action1 ”

原因是action1调用的action名字叫“Action1 ”,所以DataTable中要改名。

robinpipi 发表于 2012-12-7 10:01:20

我不是才用的副本的方式,采用的是 调用现有操作的方式

robinpipi 发表于 2012-12-7 13:46:19

没人回答啊

robinpipi 发表于 2012-12-7 16:48:51

自己顶一下

jack_loo 发表于 2012-12-7 21:01:55

你说调用test1,但脚本却是调用test3,脚本写的是RunAction "Action1 ", oneIteration。

无论是副本调用还是现有脚本调用,我说的原因都是正确的,你可以在test1的脚本中增加以下内容,然后在test2中运行:
print DataTable.LocalSheet.Name
你就能看到在test2中运行时的第三个sheet的名称是:Action1

robinpipi 发表于 2012-12-11 10:04:57

本帖最后由 robinpipi 于 2012-12-11 10:07 编辑

我描述的名称有问题,就是test5调用test3。目前test5调用test3就会报A列不存在

robinpipi 发表于 2012-12-11 10:11:09

用print 打出来是 Action1【Test3】,而在test3中把Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")中的“Action1”改成“Action1 ”后,在test5中运行,会报Action1【Test3】工作表不存在。

泰然 发表于 2012-12-11 12:03:07

你到底有几个test啊?到底是不是现有调用?如果是现有调用的化,应该只有test1和test2,怎么会出来什么test3和test5呢?

robinpipi 发表于 2012-12-11 13:44:14

就是2个test,无论是1和2,还是3和5,只不过是命名不同。因为楼上的提出了我是因为调用了test3,所以做了一下解释。

robinpipi 发表于 2012-12-12 11:06:35

求解决啊,求解决啊

黑羽祭 发表于 2012-12-12 11:27:29

回复 12# robinpipi


    还没有查出原因么?

robinpipi 发表于 2012-12-12 11:40:06

没有,这个肯定不是脚本错误造成的,就是简单的一句,然后就直接调用。

robinpipi 发表于 2012-12-12 11:40:42

问过几个人,都没彻底解决

黑羽祭 发表于 2012-12-12 11:56:58

回复 15# robinpipi


    好吧,我帮你看看。等等

黑羽祭 发表于 2012-12-12 12:52:56

回复 1# robinpipi


    你在Test1中的Action1写了DataTable.Value("A","Action1"),这样运行是可以的。
当你用Test2来调用Action1的时候,你注意DataTable,Test1的Action1表的名字变为了Action1 ,表的sheet名都变了,自然就找不到你要的内容。
如果你在Test2中使用DataTable.Value("A","Action1 "),我相信是可以使用的。

你想多Action调用,并读表格,如果是我的话,就调用外部的Excel,不使用DataTable。

robinpipi 发表于 2012-12-12 14:52:08

回复 17# 黑羽祭


    不行。这是修改后运行报的错误

robinpipi 发表于 2012-12-12 14:53:26

回复 17# 黑羽祭
不行的。
这是修改后运行的错误。

黑羽祭 发表于 2012-12-12 16:07:24

回复 19# robinpipi


    Action1和之间少个空格
页: [1] 2
查看完整版本: 【已解决】qtp11 独立的action之间相互调用时,datatable的用法