在Qtp中,从全局表格的本地图表栏中打印值只有最后一行值是priint

systemUtil.run "iexplore",datatable.Value(4,1) datatable.value(5,1)=Browser("Google").Page("Google").WebElement("India").GetROProperty("innertext") a=datatable.GetSheet("Global").GetParameter("result").Value datatable.value(2,2)=a browser("Google").Close datatable.Export "C:\Users\arajput\Desktop\qtp.xlsx" 

我想通过在新的工作表栏中传递不同的url来打印标志谷歌,即印度,英国等国家。 我已经在全局工作表中传递不同的url,它工作正常输出在全球工作表中的国家名称,但在本地表中获得相同的值,即新的工作表,它只显示最后的url值只返回一行,因为它是覆盖前一个

哇…我看了你到目前为止发布的代码,这很混乱。

您正在使用索引编号和名称混合您的工作表和参数…例如,首先,您使用包含在全球工作表的“字段#4”中的URL来激发iexplore …我不能说出什么该参数被称为,我只知道它是列#4。

然后,将由名为“India”的testing对象标识的对象的无限制值存储到全局表的第5列中。 再一次,我不知道何时调用该参数。

接下来,你想把一些数据放到一个名为“a”的variables中,但是为了得到这些数据,你需要拉取一个名为“result”的参数的值。这个参数也是全局表格中的一列。 。

所以,一个问题从这里开始 – 我不知道“结果”的列号是什么……它可能是第5列,这是你只是把“印度”的无痕文字…但它可能是列6,还是其他的东西会有所不同。 这里的重点是可能有一个微妙的错误,很难在这里find。 或者它可以很好。 我不知道。

接下来,您立即将数据从数据表中放回到表2的第2列中。再次,我没有关于调用该参数的信息,甚至没有关于调用表2的信息。 (我知道的一件事就是,QTP会坚持使用表单2作为属于创build的第一个Action的数据表,但这可能是无关紧要的)

毕竟,你将表导出到一个文件。

这一切都非常混乱,但这是你给我们的工作。

这里有一些事情要检查。

1)你正在改变数据表的CurrentRow? 您可能会遇到更改全局表的CurrentRow,但不是本地表的情况。 检查以确保在读取或写入数据到这些表之前设置两个表的CurrentRow。

2)我注意到你正在从一个名为“India”的WebElement对象读取数据…但是你也描述了你可能期望在那个对象中find“uk”…所以,可能叫做“India”的对象应该是称为“国家”…无论如何,你应该检查,以确保该WebElement的testing对象描述可以正确识别该对象,即使它没有显示“印度”,因为它是无处不在的。

3)我也注意到你的问题谈到“priint”(我假设你的意思是打印),但是你的例子代码实际上并没有打印任何东西。 你只是输出整个表格,我们不能说出为什么“只有最后一行值得到priint”

花了一些时间来了解你的问题,我希望下面的答案可以帮助你。

指定表名与索引(例如:“Global”而不是“1”和“SomeSheet”而不是“2”)同样适用于列名。

 glbRwCount=Datatable.GetSheet("Global").GetRowCount For i=1 to glbRwCount Datatable.GetSheet("Global").SetCurrentRow(i) systemUtil.run "iexplore",datatable.Value(4,"Global") Datatable.value(5,"Global")=Browser("Google").Page("Google").WebElement("India").GetROProperty("innertext") a=Datatable.GetSheet("Global").GetParameter("result").Value Datatable.GetSheet("Action1").SetCurrentRow(i) Datatable.value(2,"Action1")=a Browser("Google").Close Next Datatable.Export "C:\Users\arajput\Desktop\qtp.xlsx"