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"
我想通过在新的工作表栏中传递不同的网址来打印徽标google(即india,uk等)下方的国家/地区。我已经在全局工作表中传递了不同的URL,它在全局工作表中输出国家名称时工作正常但是在本地工作表中获取相同的值,即新工作表它只显示最后一个url值,只返回一行,因为它覆盖了前一个
答案 0 :(得分:1)
你正在为你的表格和参数使用索引编号和名称的混合...例如,首先你使用全局表格的“字段#4”中包含的URL来启动iexplore ...我可以'告诉你该参数被调用了什么,我只知道它的第4列。
然后,将名为“India”的测试对象标识的对象的innertext值存储到全局表的第5列中。同样,我无法判断何时调用该参数。
接下来,你想把一些数据放到一个名为“a”的变量中......但是,要获得那些数据,你要拉一个名为“result”的参数的.value,它也是全局的一列片...
所以,问题从这里开始 - 我不知道“结果”的列号是什么......它可能是第5列,这就是你把“印度”的内容放在哪里......但它可能是第6列,或其他不同的东西。这里的要点是可能存在一个在这里很难找到的微妙错误。或者它可以没事。我不知道。
接下来,您立即将值从后面放入数据表中,进入表2的第2列...再次,我没有关于调用该参数的信息,甚至没有关于调用表2的信息。 (我知道的一件事是,QTP将坚持将表2作为属于第一个创建的Action的数据表......但这可能无关紧要)
毕竟,您将工作表导出到文件。
这一切都非常令人困惑,但这是你给我们的工作。
以下是一些需要检查的事项。
1)您是否正在更改数据表的CurrentRow?您可能会遇到更改全局表的CurrentRow但不更改本地表的情况。检查以确保在读取或向这些表写入数据之前设置两个表的CurrentRow。
2)我注意到你正在从一个名为“India”的WebElement对象中读取数据......但是你还描述了你可能希望在那个对象中找到“uk”......所以,也许这个对象叫做“India” “应该被称为”国家“......无论如何,你应该检查以确保该WebElement的测试对象描述能够正确地识别该对象,即使它没有显示”印度“,因为它是不可用的。
3)我也注意到你的问题是关于“priint”(我假设你的意思是打印),但你的示例代码实际上并没有打印任何内容。你只是导出整个工作表,我们无法分辨为什么“只有最后一行的值才能获得priint”
答案 1 :(得分:0)
花了一些时间来理解你的问题,我希望以下答案可以帮到你。
使用其名称而不是使用索引(例如:“全局”而不是“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"