2015-04-03 1 views
0

Я пытаюсь проверить, существует ли свойство webelement на странице. Но QTP всегда возвращает истину :(и не собирается в «Else» часть. Ниже мой код. Просьба помочь исправить это :(Проверка веб-элемента QTP не выполняется условие «else»

BlnResult = Browser("CDMS :: Master Agreement").Page("CDMS :: Master Agreement").WebElement("File Upload successfully").Exist(0) Then 
Msgbox "Success" 
Else 
Msgbox "Fail" 
End If 

QTP всегда возвращает «успех», даже в том случае, если веб-элемент не есть на странице.

+2

Посмотрите на BlnResult.getROProperty ("width"). Он, возможно, возвращает 0, если он существует, но невидим. Это связано с тем, что для сокращения времени перезагрузки многие графические интерфейсы имеют все элементы, которые когда-либо были готовы, то есть загружены как часть веб-страницы, но не заставляют их оставаться невидимыми до тех пор, пока это не понадобится. Так что Exist (0) всегда может быть правдой. Вы можете легко проверить это с помощью редактора OR или инспектора. – TheBlastOne

ответ

1

Как «TheBlastOne» упоминается, Exist метод не проверяет, если элемент является видимым или нет. Даже если она спрятана с помощью CSS, он все равно будет возвращать TRUE.

Итак, попробуйте что-нибудь (здесь мы проверяем координаты элемента, если он присутствует в пользовательском интерфейсе, они будут иметь некоторые координаты. Не 0)

Set FileUpload = Browser("CDMS :: Master Agreement").Page("CDMS :: Master Agreement").WebElement("File Upload successfully") 

If FileUpload.GetROProperty("x") <> "0" AND FileUpload.GetROProperty("y") <> "0" Then 
     Msgbox "Success" 
Else 
     Msgbox "Failed" 
End If