2013-12-13 5 views
1

QTP11에서 드롭 다운 목록 버튼을 처리 할 수있는 다음과 같은 기능이 있습니다. 다음과 같이 HTML 구조는 다음과 같습니다QTP : HTML 태그가 인식되었지만 클릭 기능에 응답이 없습니다

enter image description here 하위 FindDropdown (텍스트) 는 '매개 변수로 페이지와 텍스트를 가져 카운터 = 내가 테스트 한 동안 0

Set oDesc = Description.Create() 
oDesc("html tag").Value = "tr" 
Set trContent = Browser("Change Management - SAP").Page("Change Management - SAP").ChildObjects(oDesc) 
TRSum = trContent.Count() 

For i = 0 To TRSum - 1 
    Set objPage = trContent(i).Object 
    Set objTag = objPage.GetElementsByTagName("td") 
    spanSum = objTag.Length - 1 

    For intCtr = 0 to spanSum 
      strLink = objTag(intCtr).InnerText 
      If strLink = text Then 
       trContent(i).Object.click() 
      End If 
    Next 
Next 
Set oDesc=nothing 

End Sub 

, 및 내부 요소로 선택 모두 (예 : 클릭과 같은) 작업을 수행 할 수 없으며 사실 코드는 입니다. trContent (i) .Object.click() 은 효과가없는 것으로 보입니다.

리스너/이벤트 처리기 장소와 관련이 있습니까? 리스너가 TR이나 TD 요소가 아닌가?

답변

1

내가 클릭 이벤트 리스너를 실행하는 데 완전히 네 가지 방법을 시도를 시도 할 수 있습니다 TO 개체 리포지토리에 포함 된 .click 클릭 청취를 시작합니다. 응답 없음; 2. SendKeys 메서드 사용 : 이 동작에서는 작동하지만, 기본 동작에서 동작을 호출하면 작동하지 않습니다. 3. DOM 호출 사용 : 위의 스크립트와 마찬가지로 클릭 핸들러를 실행할 수 없습니다.

마지막으로, 나는 devicereplay로 향했다. 아이디어는 요소의 런타임 위치를 가져 와서 해당 위치를 클릭하십시오. 이것은 어떻게 든 낮은 수준의 기능이며, 내 부분에 원활하게 실행됩니다. 이 같은 문제가 발생하는 사람들을 위해 도움이 될 수

Set objReleaseTR = Browser("Change Management - SAP").Page("Change Management - SAP_3").WebElement("Release all Transport") 

Set objDeviceReplay = CreateObject("mercury.devicereplay") 

x = objReleaseTR.GetROProperty("abs_x") 
y = objReleaseTR.GetROProperty("abs_y") 

objDeviceReplay.MouseClick x + 5, y + 5, 0 

Set objDeviceReplay = nothing 

희망 : 여기 내 작업 스크립트입니다.

+1

더 간단한 해결책은 [재생 유형을 장치로 변경] (http://stackoverflow.com/a/6670228/3848)이고 테스트 개체를 일반 클릭하는 것입니다. – Motti

+0

도움을 주신 Motti에게 감사드립니다. 예, QTP 재생 유형을 변경하는 작업 방식입니다. – Torrence

1

클릭 수신기가 연결되어 있는지 여부를 먼저 확인합니다. 필요합니다. 은 그냥 사용 : recognization 1. QTP :

당신은 아래의 코드 trContent (I) .Object.FireEvent ("onclick을")

+0

감사합니다 MansoorShaikh :),이 여전히 작동하지 않습니다, 어쩌면 이벤트 수신기가 TR 또는 SPAN에없는 및 자세한 내용은 개발자 참조 할 것입니다. – Torrence