Справка по сравнению через Instr Function - PullRequest
0 голосов
/ 12 января 2012

Я хочу преобразовать int в string в VB6 и разобрать эту string в Instr функцию, но я не могу этого сделать, вот мой код:

'.WebElement("total_Count").GetROProperty("innertext")=1 - 10 de 31 candidatos 
'This is the value in innertext, and i want to compare the 31

totalCount=31
CStr (totalCount)
        If InStr(totalCount,.WebElement("total_Count").GetROProperty("innertext"))>0Then
                MsgBox "Found"
                Reporter.ReportEvent micPass,"DBVerification","TotalCount Verified From DB"
                Else
                MsgBox "Not Found"
                Reporter.ReportEvent micFail,"DBVerification","TotalCount Not Verified From DB"
        End If

Спасибо за вашу помощь

Ответы [ 3 ]

1 голос
/ 12 января 2012

Сравнения на VB6 чувствительны к регистру, если только Option Compare Text не используется в верхней части модуля / формы / класса;в этом конкретном случае это не имеет значения, хотя.Кроме того, CStr(totalCount) не присваивает что-либо, не превращает TotalCount в строку;возвращает строку.

totalCount=31

If InStr(lcase(CStr(totalCount)),lcase(.WebElement("total_Count").GetROProperty("innertext")))>0 Then
   MsgBox "Found"
   Reporter.ReportEvent micPass,"DBVerification","TotalCount Verified From DB"
Else
   MsgBox "Not Found"
   Reporter.ReportEvent micFail,"DBVerification","TotalCount Not Verified From DB"
End If
0 голосов
/ 17 января 2012

Поменяйте местами аргументы функции Instr ():

InStr(.WebElement("total_Count").GetROProperty("innertext"), totalCount)>0

Теперь вы ищете, если 31 внутри вашего внутреннего текста. Вам не нужно использовать cStr(), lCase() или другие вещи, VBScript сделает это за вас.

Редактировать: То, что вы действительно хотите, чтобы это работало правильно, - это, конечно, регулярное выражение:

Dim regEx, matches, actualTotal
set regEx = new RegExp
regEx.Global = True
regEx.pattern = "\d+ - \d+ de (\d+) candidatos"
Set matches = regEx.Execute(Value)
actualTotal = matches(0).submatches(0)

Теперь вы можете сравнивать фактический итог с ожидаемой суммой, не беспокоясь о том, находится ли число в остальной части строки. Например: «31 - 40 из 42 кандидатов» приведет к ложному положительному результату. Используя RegExp, вы предотвращаете такое поведение.

0 голосов
/ 13 января 2012

Почему вы не сравниваете их как числа, как вы это делаете, если totalcount = 31 и innertext содержит 1, вы получите True, что, безусловно, не то, что вы хотите.

...