2015-10-08 2 views
2

Я хотел бы управлять функцией увеличения и уменьшения масштаба моей веб-страницы тестируемого приложения с использованием UFT. Это необходимо, так как уровень масштабирования изменяется динамически, и становится трудно идентифицировать объекты. Я нашел код, но он полезен, если вам нужно изменить уровень масштабирования в одном экземпляре или в начале. ниже приведен кодКак увеличить или уменьшить масштаб веб-страницы при использовании UFT/QTP

Function ChangeIEZoom 
Dim intZoomLevel, objIE 
intZoomLevel = 110 
Const OLECMDID_OPTICAL_ZOOM = 63 
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 
Set objIE = CreateObject("InternetExplorer.Application") 
objIE.Visible = True 
objIE.Navigate ("www.google.com") 
While objIE.Busy = True 
wait 5 
Wend 
objIE.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(intZoomLevel), vbNull 
End Function 

с этим кодом он открывает новый браузер и перемещает его по URL-адресу.

Я не хочу, чтобы он создавал новый экземпляр браузера. Мне нужно, чтобы он менял уровень масштабирования на той же странице, которая уже находится под тестовым исполнением, а также на странице, где изменение уровня масштабирования не известно в начале, и может потребоваться или не потребовать изменения в зависимости от того, что это идентифицирует определенные объекты.

Кто-нибудь сталкивался с той же проблемой или имеет решение?

+0

Если главное, что вы хотите, чтобы избавиться от создания нового экземпляра, используя существующий экземпляр IE см http://stackoverflow.com/ вопросы/941767/reusing-internet-explorer-com-automation-object (первый ответ, третий вариант) для возможного решения. – TheBlastOne

+0

Привет, спасибо за ваш ответ. Я хочу изменить уровень масштабирования в своем приложении в середине тестового прогона. Я не хочу создавать новые экземпляры, я хочу изменить уровень масштабирования на текущей веб-странице, которая находится под тестированием. – Pranav

+0

Спасибо @TheBlastOne - Основываясь на ваших комментариях, я смог найти решение – Pranav

ответ

2

Я нашел решение, сочетающее то, что вы упомянули в комментариях. это работает, если вы хотите изменить уровень масштабирования на текущей веб-странице, над которой вы работаете. помогает, когда вы хотите, чтобы увеличивать и уменьшать в нескольких экземплярах

Dim ShellApp 
Set ShellApp = CreateObject("Shell.Application") 
Dim ShellWindows 
Set ShellWindows = ShellApp.Windows() 
Dim intZoomLevel 
intZoomLevel = 110 
Const OLECMDID_OPTICAL_ZOOM = 63 
Const OLECMDEXECOPT_DONTPROMPTUSER = 2 
Dim i 
For i = 0 To ShellWindows.Count - 1 
    If InStr(ShellWindows.Item(i).FullName, "iexplore.exe") <> 0 Then 
     Set IEObject = ShellWindows.Item(i) 
    End If 
    If IEObject.Visible = True Then 
    While IEObject.Busy = True 
    wait 5 
    Wend 
    IEObject.ExecWB OLECMDID_OPTICAL_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, CLng(intZoomLevel), vbNull  
    End If 
Next 
print "it works"