【已解决】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应如何处理呢 这个问题一直没解决,请各位费心 你是采用调用副本的方式调用的吧?
把脚本Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")中的“Action1”改成“Action1 ”
原因是action1调用的action名字叫“Action1 ”,所以DataTable中要改名。 我不是才用的副本的方式,采用的是 调用现有操作的方式 没人回答啊 自己顶一下 你说调用test1,但脚本却是调用test3,脚本写的是RunAction "Action1 ", oneIteration。
无论是副本调用还是现有脚本调用,我说的原因都是正确的,你可以在test1的脚本中增加以下内容,然后在test2中运行:
print DataTable.LocalSheet.Name
你就能看到在test2中运行时的第三个sheet的名称是:Action1 本帖最后由 robinpipi 于 2012-12-11 10:07 编辑
我描述的名称有问题,就是test5调用test3。目前test5调用test3就会报A列不存在 用print 打出来是 Action1【Test3】,而在test3中把Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").Set DataTable.Value("A","Action1")中的“Action1”改成“Action1 ”后,在test5中运行,会报Action1【Test3】工作表不存在。 你到底有几个test啊?到底是不是现有调用?如果是现有调用的化,应该只有test1和test2,怎么会出来什么test3和test5呢? 就是2个test,无论是1和2,还是3和5,只不过是命名不同。因为楼上的提出了我是因为调用了test3,所以做了一下解释。 求解决啊,求解决啊 回复 12# robinpipi
还没有查出原因么? 没有,这个肯定不是脚本错误造成的,就是简单的一句,然后就直接调用。 问过几个人,都没彻底解决 回复 15# robinpipi
好吧,我帮你看看。等等 回复 1# robinpipi
你在Test1中的Action1写了DataTable.Value("A","Action1"),这样运行是可以的。
当你用Test2来调用Action1的时候,你注意DataTable,Test1的Action1表的名字变为了Action1 ,表的sheet名都变了,自然就找不到你要的内容。
如果你在Test2中使用DataTable.Value("A","Action1 "),我相信是可以使用的。
你想多Action调用,并读表格,如果是我的话,就调用外部的Excel,不使用DataTable。 回复 17# 黑羽祭
不行。这是修改后运行报的错误 回复 17# 黑羽祭
不行的。
这是修改后运行的错误。
回复 19# robinpipi
Action1和之间少个空格
页:
[1]
2