在 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:UsersarajputDesktopqtp.xlsx"

我想通过在新的工作表列中传递不同的 url 来打印徽标谷歌下方的国家/地区,即印度、英国等。我在全局表中传递了不同的 url,它可以在全局表中输出国家/地区名称时工作正常,但在本地工作表中获得相同的值,即新工作表它只显示最后一个 url 值,因为它覆盖了前一行

哇...我看了一下你到目前为止发布的代码,它非常令人困惑。

您正在为工作表和参数混合使用索引号和名称... 例如,首先您使用全局工作表的"字段 #4"中包含的 URL 触发 iexplore...我不知道那个参数叫什么,我只知道它是#4列。

然后,将名为"India"的测试对象标识的对象的 innertext 值存储到全局工作表的列 #5 中。 同样,我无法判断何时调用该参数。

接下来,您要将一些数据放入名为"a"的变量中...但是,要获取该数据,您需要提取名为"result"的参数的 .value,该参数也是全局工作表上的一列......

所以,一个问题从这里开始 - 我无法说出"结果"的列号是什么......它可能是第 5 列,这就是您刚刚放置"印度"内部文本的地方...... 但它可能是第 6 列,或者其他不同的东西。 这里的重点是可能有一个微妙的错误,在这里很难找到。 或者可能没事。我说不出来。

接下来,您立即将值从 a 放回数据表中放入工作表 2 的第 2 列中...同样,我没有关于该参数的名称,甚至没有关于工作表 2 的名称的信息。 (我知道的一件事是,QTP 将坚持将表 2 作为属于创建的第一个操作的数据表...... 但这可能无关紧要)

完成所有这些之后,您将工作表导出到文件。

这一切都非常令人困惑,但这就是您给我们的工作。

以下是一些需要检查的内容。

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

2)我注意到您正在从名为"India"的WebElement对象中读取数据... 但你也描述了你可能希望在那个对象中找到"uk"...... 所以,也许被称为"印度"的对象应该被称为"国家"...... 无论如何,您应该检查以确保该WebElement的测试对象描述可以正确识别该对象,即使它没有显示"India"作为内部文本。

3)我还注意到你的问题谈到了"priint"(我假设你的意思是打印),但你的示例代码实际上并没有打印任何东西。 您只是导出整个工作表,我们无法说出为什么"只有最后一行值变得清晰"

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

最好用表

的名称而不是索引来指向表(例如:"全局"而不是"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:UsersarajputDesktopqtp.xlsx"

最新更新