2013-04-22 2 views
2

enter image description here 안녕하세요, extJS 기반 UI가 있습니다. 페이지가 겹치는 문제에 직면하고 있습니다. 예 : 패널 종류의 노트를 열 수있는 버튼이있는 페이지가 있습니다 (참고 : 별도의 프레임이나 별도의 창이 아니며 상위 페이지 DOM과 동일한 DOM 내부에서 열립니다). 패널이 기본 페이지와 겹칩니다. 패널에는 Z- 색인 스타일 속성이 있습니다. 이제이 패널에서 컨트롤을 식별하고 싶습니다. 어떻게 셀레늄 webdriver에서 할 수 있습니다. 또한 패널과 기본 페이지가 동일한 컨트롤을 가질 가능성이 있습니다 (그러나 기본 컨트롤은 활성화되어 있지 않습니다). 그렇다면 어떻게 그러한 컨트롤을 식별 할 수 있습니까? TIA. 안녕하세요, 저는 UI의 스크린 샷을 추가하고 싶지만 이미지를 게시하려면 적어도 10 개의 평판이 필요하다고 말하면서 추가 할 수 없습니다. 나는 어떻게 명성을 얻을 수 있습니까? 두 페이지에 표시되는 일부 컨트롤, 즉 겹쳐진 페이지와 겹치는 페이지가 있습니다. 그리고 extJS 기반 UI로 ID가 자동으로 생성되고 CSSLocator는 UI에 표시되는 컨트롤과 유사한 컨트롤을 모두 식별합니다. 그래서 나는 어떻게 든 패널에 뛰어 다니고 컨트롤을 식별하는 단 하나의 옵션 만 남았을 것입니다. 기본 컨트롤이 비활성이지만 여전히 도움이되지 않는다고 가정하고 driver.switchTo.activeElement를 사용하여 시도했습니다. 이것에 대한 도움이 필요합니다. TIA자바로 셀렌 webdriver에서 겹쳐진 페이지를 처리하는 방법

첨부 된 스크린 샷. 이제 보시면 알 수 있듯이 강조 표시된 패널이 기본 페이지와 겹치고 중복 된 페이지의 DOM에도 표시됩니다. 몇 가지 포인터 : 1) 나는 XPath와 함께했지만 UI (나는 동적으로 xpath를 생성하려고 시도하고 있지만 아직 진행 중이다.)에있는 모든 컨트롤에 대해 xpath를 하드 코드해야하므로이 도움이되지 않는다. 2) Is 어쨌든 우리는 운전자에게 집중력이 있고 활성 인 컨트롤을 선택하도록 말할 수 있습니다. DOM 소스가 너무 커서 붙여 넣을 수 없습니다. 질문에서 문제가되는 컨트롤은 두 번 나타나고 한 페이지에 여러 번 나타날 수있는 스크린 샷과 같은 쿼리 시작 버튼입니다. 제안 된 솔루션을 개발 중입니다.

+0

Google에서 귀하를 도와 드릴 수 있도록 귀하의 페이지 또는 웹 페이지 링크의 HTML 코드를 공유 할 수 있습니까? – Hemanth

+0

이 경우 xpath를 사용할 수 있습니다. 지금 웹 페이지 스크린 샷을 추가하십시오. 게시물을 편집 한 – Hemanth

답변

0

스크린 샷에는 몇 줄의 DOM 만 표시되어 있으므로 사용자가 추측 할 수 있습니다.

난 당신이에 DOM 비슷한 있다고 가정 :

<button id='ext-gen343'>Start query</button> 
<div id="ext-gen1829" class=" x-window" style="width: 30px; height: 85px; margin: 0px; left: 0px; top: 0px; visibility: visible; display: block;"> 
    <button id='ext-gen1920'>Start query</button> 
</div> 

그냥 cssSelector 또는 XPath는을 사용하여 내부의 버튼을 찾을 먼저 창을 찾습니다. 귀하의 포인트 # 2의

// Note that I used 'display: block;' to ensure we are looking for the active/visible window. 
WebElement btnStartQueryInside = driver.findElement(By.XPath("//div[contains(@class, 'x-window') and contains(@style, 'display: block;')]//button[text()='Start query']")); 

, driver.switchTo.activeElement 당신이 전에 언급 한 당신이 원하는 하나입니다. 그러나이를 수행하는 것은 우아한 해결책이 아니며 전혀 작동하지 않습니다.

+0

게시물을 참조하십시오. –

관련 문제