在QTP的Select方法中使用正規表示式
方法1:
Function RegexSelectQTP(Object, sPattern)
Dim oRegExp, arrAllItems, ix
'Create RegExp Object
Set oRegExp = New RegExp
oRegExp.IgnoreCase = False
oRegExp.Pattern = sPattern
'Split Object's all_items property
arrAllItems = Split(Object.GetROProperty("all items"), ";")
For ix = LBound(arrAllItems) To UBound(arrAllItems)
'If RegExp pattern matches list item, we're done!
If oRegExp.Test(arrAllItems(ix)) Then
Object.Select "#" & ix
Set oRegExp = Nothing
Exit Function
End If
Next
'Select Item #1 by default
Object.Select "#0"
End Function
RegisterUserFunc "WebList", "RegexSelectQTP", "RegexSelectQTP"
使用的例子:
Browser("").Page("").WebList("").RegexSelectQTP "London - Heathrow" 'Select London-Heathrow
Browser("").Page("").WebList("").RegexSelectQTP "London - Heath.*" 'Select London-Heathrow
Browser("").Page("").WebList("").RegexSelectQTP "London - /D+" 'Select London-Heathrow
方法2:
Function RegexSelectDOM(Object, sPattern)
Dim oRegExp, oOptions, ix
'Create RegExp Object
Set oRegExp = New RegExp
oRegExp.IgnoreCase = False
oRegExp.Pattern = sPattern
'DOM options
Set oOptions = Object.Object.Options
For ix = 0 to oOptions.Length - 1
'If RegExp pattern matches list item, we're done!
If oRegExp.Test(oOptions(ix).Text) Then
Object.Select "#" & ix
Set oRegExp = Nothing
Exit Function
End If
Next
'Select Item #1 by default
Object.Select "#0"
End Function
RegisterUserFunc "WebList", "RegexSelectDOM", "RegexSelectDOM"
使用的例子:
方法3:
這種方法並沒有使用正規表示式,而是使用了VBS中的InStr和Mid方法
Public Function VBSSelect(Object, sString)
Dim sAllItems, varLocation, varEnd, varBeginning
'Retrieve Object's all_items property
sAllItems = Object.GetROProperty("all items")
'Verify if the supplied string is found in list's all_items property
varLocation = InStr(1, sAllItems, sString)
'If found:
If varLocation > 0 Then
varEnd = InStr(varLocation, sAllItems, ";")
If varEnd = 0 Then varEnd = Len(sAllItems) + 1
varBeginning = InStrRev(sAllItems, ";", varLocation)
Object.Select "" & Mid(sAllItems, varBeginning + 1, varEnd - varBeginning - 1)
Exit Function
End If
'Select Item #1 by default
Object.Select "#0"
End Function
RegisterUserFunc "WebList", "VBSSelect", "VBSSelect"
使用的例子:
Browser("").Page("").WebList("").VBSSelect "London - Heathrow" 'Select London-Heathrow
Browser("").Page("").WebList("").VBSSelect "London - Heath" 'Select London-Heathrow
Browser("").Page("").WebList("").VBSSelect "London - " 'Select London-Heathrow
三種方法的執行效率比較:
Run Mode |
Normal |
Fast |
RegexSelectQTP |
0.44 s |
0.38 s |
RegexSelectDOM |
0.45 s |
0.40 s |
VBSSelect |
0.39 s |
0.35 s |
參考:
http://relevantcodes.com/regular-expressions-with-select-method-listbox/
相關文章
- 正規表示式在Java中的使用Java
- MongoDB正規表示式在索引中的使用MongoDB索引
- 在UltraEdit中使用正規表示式
- 正規表示式在iOS中的運用iOS
- QTP的描述性程式設計與正規表示式QT程式設計
- 在JAVA中使用正規表示式 (轉)Java
- 正規表示式 split()方法
- 使用正規表示式替換字串的方法(replace方法)字串
- java中的正規表示式Java
- JS中的正規表示式JS
- iOS中的正規表示式iOS
- Oracle中的正規表示式Oracle
- 在angular路由中使用正規表示式Angular路由
- 在UltraEdit中使用正規表示式(轉載)
- js中在迴圈中使用正規表示式遇到的小坑JS
- Dreamweaver網頁設計中的正規表示式使用方法教程網頁
- python中re模組的使用(正規表示式)Python
- 正規表示式在iOS開發中的應用iOS
- js中的正規表示式(1)JS
- Java 中 Emoji 的正規表示式Java
- Oracle sql中的正規表示式OracleSQL
- 正規表示式的字串替換方法字串
- Oracle正規表示式匹配中文的方法Oracle
- 正規表示式匹配${key}並在Java中使用Java
- 十六進位制在正規表示式中的使用簡單介紹
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- MongoDB正規表示式匹配使用方法舉例MongoDB
- iOS-正規表示式使用iOS
- JavaScript正規表示式方法總結JavaScript
- 無法在 nginx 的 “if” 正規表示式中使用變數?Nginx變數
- 淺談js中的正規表示式JS
- python中的re(正規表示式)Python
- oracle中的正規表示式(regular expression)OracleExpress
- 正規表示式中的特殊字元(轉)字元
- JavaScript中的正規表示式(2) (轉)JavaScript
- UltraEdit (UE)中的常用正規表示式
- JavaScript中的正規表示式(1) (轉)JavaScript
- 正規表示式