실제로 브라우저 개체는 현재 열려있는 모든 브라우저 창과 탭의 모음을 나타냅니다.이 같은 이름이나 설명하여 특정 하나를 지정합니다
"웹 사이트"중 특정을 설명하는 객체 저장소에 명명 된 "브라우저 객체", 또는 교대 설명 (문자열 또는 개체)입니다
Browser("website")
창/탭을 선택하십시오.
Page 객체는 위에서 언급 한 브라우저가로드 한 가능한 모든 페이지의 모음을 나타냅니다. 콜렉션의 인스턴스는 오브젝트 저장소의 "페이지 오브젝트"에 해당합니다. 특히 실제 브라우저 창 주어진/탭은 주어진 순간에로드 ONE 실제 페이지를 가질 수 있다는 사실을 고려,이 개념은 매우 혼란 스러울 수 있습니다
Browser("website").Page("Logon Page")
:이 같은 이름이나 설명하여 특정 일을 지정합니다. 즉, Browser ("웹 사이트")의 실시간 하위 객체를 반복하는 경우 항상 하나만 존재합니다.
이 브라우저/페이지 관계를 생각하는 가장 좋은 방법은 올바른 은유를 사용하는 것입니다. 처음 QTP 프로그래밍을 시작했을 때 IE, Chrome, Firefox 등의 브라우저 객체를 생각하는 것이 가장 좋았을 것 같았고 그런 방법으로 객체 리포지토리 객체를 관리하려고 시도했지만 엄청난 혼란을 겪었습니다. 하나의 웹 사이트를 대상으로 저장소의 브라우저 객체의
생각한다
는 지금 브라우저를 구성하는 가장 좋은 방법은 객체 저장소에 객체를이 방법을 이해합니다. Amazon.Com MSN.Com StackOverflow.Com LifeHacker.Com 등.
리포지토리의 페이지 개체를 웹 사이트 개체의 명확한 단일 페이지로 생각하십시오. 웹 사이트가 다른 페이지에 대해 다른 컨트롤을 사용하여 표시 할 수있는 경우 브라우저 객체 아래에 별도의 Page 객체를 만들어야합니다. 저장소는 다음과 같이 보일 수 있습니다.
여기서 아이디어는 해당 페이지에서만 발생하는 제어 개체를 포함하는 논리 페이지를 만드는 것입니다. 이 일을하기 위해 까다로운 물건 이제
...
, 우리는 때 그들이해야 브라우저와 페이지 객체는 실제로 "존재"확인해야합니다. 브라우저 객체의 경우 브라우저 탭에 ANY 페이지가로드 될 때마다 "존재"해야합니다. 페이지 객체의 경우 해당 웹 사이트의 해당 페이지가로드 될 때만 "존재"해야하며 특정 컨트롤은 화면에 표시됩니다.
즉, 웹 사이트의 페이지가 현재로드되어 있어도 브라우저 개체로 웹 사이트를 올바르게 식별 할 수 있도록 브라우저 개체의 식별 속성을 신중하게 편집해야합니다.
예를 들어 ... 내 작품에는 "무역"이라는 웹 사이트가 있습니다. 브라우저는 일반적으로 "name:=Trade"
을 사용하여 안정적으로 찾을 수 있지만 로그인 페이지는 약간 다릅니다. 이름은 "Trade to Welcome"입니다. 따라서 웹 사이트 개체를 작동 시키려면 다음과 같은 식별 속성에서 정규 표현식을 사용합니다. 이 : "name:=(?:Welcome to Trade|Trade)"
. 이 방법은 동일한 브라우저 객체가 두 이름 중 하나가 발견되면 "존재"한다고 말합니다. 이 방법으로 로그인 페이지 만 포함 된 브라우저 객체로 객체 저장소를 복잡하게 만드는 대신 전체 웹 사이트 객체의 일부로 로그인 페이지를 포함 할 수 있습니다. 나중에 코드를 읽는 것을 더 짜증나게 만들고 WITH 블록의 사용을 복잡하게 만듭니다.
또 다른 문제점은 페이지 객체가 종종 구별하기 어렵다는 것입니다.로드 된 URL은 동적 일 수 있으며 페이지 제목은 한 페이지에서 다른 페이지로 전혀 변경되지 않을 수 있습니다. 이 문제를 해결하기 위해 객체 저장소의 내 페이지 객체에 추가 식별 속성을 추가합니다. 예를 들어 수동으로 URL 속성을 추가 한 다음 정규식을 사용하여 다음과 같이 URL 내의 특정 태그를 봅니다. "URL:=https://TradeTools-(?:SIT|UAT).*userLogin.*"
This 필수 title 속성에 추가 될 것은 ...
- 브라우저 및 페이지 (필수 속성을 제거하지 않거나 녹화 엔진이 제대로 기록 할 수 없게됩니다 결코)보다 직접적으로이 질문에 대한 답을
그래서, 객체는 QTP의 일부입니다. QTP는이 API 을 제공하고 있으며 VBScript를 사용하여 (터치하거나 사용하거나 조작합니다). 브라우저 및 페이지 클래스가 QTP 외부에 존재하지 않습니다.
- 브라우저 및 페이지 개체에 사용할 수있는 전체 메서드 및 속성 목록을 QTP/UFT 도움말 파일에서 얻을 수 있습니다. 또한 읽을 수 있습니다 : http://community.hpe.com/t5/All-About-the-Apps/Understanding-the-web-test-object-model-in-HP-Unified-Functional/ba-p/6168133#.Vvp0V-IrK03
이 정보가 도움이되기를 바랍니다. 일단 브라우저/페이지에 대한 이해를 여기에 설명 된 은유로 전환하면 QTP로 내 능력이 크게 향상되었습니다.
좋은 답변입니다! 내 질문에 대한 답변으로 표시하고 있습니다. 현재 QTP를 더 이상 사용하지는 않지만 (이 질문은 거의 5 년 후에 나왔습니다.) 그럼에도 불구하고 주제에 대한 통찰력과 개인적인 이해를 공유해 주셔서 감사합니다. :) – Mugen
감사합니다. 나는 그것을 써야했고, 당신의 질문은 완벽했고 답이 없었습니다. 그래서 다른 누구라도 그 질문을 검색하면 제 대답을 찾을 수 있도록 대답하기로했습니다. –