wensy 发表于 2009-3-9 16:27:30

GetROProperty返回值的赋予和比较

最近遇到一个奇怪的问题,在Excel里比对用户名,如果一致的话,就显示测试成功,不一致就显示测试失败。

按照如下的代码,没有任何的问题,取出的用户名和预期的用户名一致,并且测试成功。可是将mySheet.Cells(i,4).value 替换为 Browser("Mercury Tours").Page("Mercury Tours").Frame("info").WebElement("user").GetROProperty("outertext")就出现问题了。
问题比较有特点,就是用户名为全数字的会测试失败。但是查看Excel表,预期的值和实际的值却都是一样的。

用msgbox Browser("Mercury Tours").Page("Mercury Tours").Frame("info").WebElement("user").GetROProperty("outertext")
msgbox TypeName(Browser("Mercury Tours").Page("Mercury Tours").Frame("info").WebElement("user").GetROProperty("outertext"))输出的结果都没有问题,类型是string。
为什么会这样呢?

If Browser("Mercury Tours").Page("Mercury Tours").Frame("info").Exist Then
    mySheet.Cells(i,4).Value = Browser("Mercury Tours").Page("Mercury Tours").Frame("info").WebElement("user").GetROProperty("outertext")

             If      mySheet.Cells(i,3).value =mySheet.Cells(i,4).value Then
                     mySheet.Cells(i,5).Font.Color = vbBlue
                     mySheet.Cells(i,5).Value = "测试成功"
            Else
                     mySheet.Cells(i,5).Font.Color = vbRed
                     mySheet.Cells(i,5).Value = "测试失败"
            End If

[ 本帖最后由 wensy 于 2009-3-9 16:47 编辑 ]

blueeagle9999 发表于 2009-3-9 22:46:26

数字在写入EXCEL表格时有时会被做一些处理(比如以0开头的0会没掉),看看是不是这方面的原因

jorhna 发表于 2009-3-9 22:48:22

我遇到过类似的问题,原因在于两者类型不一样。全数字的一个是数值型,一个是字符型,当然不一样。建议你将两边的值都做一次转换,例如Int(mySheet.Cells(i,3).value) = Int(mySheet.Cells(i,4).value)

shiyi1022 发表于 2009-3-10 11:40:54

这种问题可以用QTP自带的debug功能,设置断点后可以直观获取数据。请注意获取的结果中是否有空格。

lix43420 发表于 2009-3-12 10:17:53

回复 1# 的帖子

一般都是用trim()去干掉多余的空格的...可以试试

wolaizhinidexin 发表于 2011-1-16 16:56:12

注意Excel表中的数字一定长度后会变的,你在数字前面加单引号就不会变了
另外,可以将两者强制转换为字符串型再比较
页: [1]
查看完整版本: GetROProperty返回值的赋予和比较