2012-03-19 4 views
2
나는 다음과 같은 응용 프로그램을 사용하고

나타나는 프레임으로 전환하려면 : 나는 테스트를 작성할 필요가 C#에서는 어떻게 팝업 창으로

  • 셀레늄 2.0
  • 파이어 폭스

을 그 버튼을 클릭하고 팝업 창으로 프레임을 엽니 다. 프레임 이름이나 ID가 없습니다.

프레임의 소스 코드는 "프레임"대신 "html"로 시작합니다. 그러나 창을 마우스 오른쪽 버튼으로 클릭하면 프레임임을 알 수 있습니다. 그래서 저는 그것이 창 대신에 프레임이라고 생각합니다.

나는 다음과 같은 코드를 시도했지만 작동하지 않습니다

:.

  • driver.SwitchTo() 프레임 (0)

나는 아래와 같은 외모를 얻을 오류 :

error: No response from server for url http://localhost:7055/hub/session/126a4485-48cb-4230-b0b0-69c4169b1852/element/%7B706f4a88-56a7-4813-af1b-8e137ce676af%7D/click

도와주세요.

감사합니다.

+0

가능한 복제본 [이름 및 XPath로 Selenium WebDriver에서 요소를 찾을 수 없음] (http://stackoverflow.com/questions/14727617/unable-to-find-element-in-selenium-webdriver-by-name- and-xpath) – kenorb

답변

0

시도해보십시오. 구문이 올바르지 않을 수도 있지만이 논리를 사용해보십시오.

WebElement MyFrame = driver.FindElement(By.Id("frame")); 
driver.SwitchTo().Frame(MyFrame) 

Java에서 유용했습니다.

감사합니다.

+0

도움 주셔서 감사합니다. 나는 너의 길을 시도했지만 여전히 성공하지 못했다.오류 : http : // localhost : 7055/hub/session/73914c61-25d9-4dc7-9481-7fd84aae5d97/element/% 7B11b0e937-3d20-4b9e-b53d-51274147f940 %에 대한 서버에서 응답이 없습니다. 7D/ – chuanl

+0

을 클릭하십시오. 프레임 태그로 시작하지 않으면 switchTo를 사용하지 마십시오. Xpath 즉 Complete Xpath를 사용하십시오. Firebug 또는 다른 것을 사용하여 Xpath를 가져옵니다. IDE와 Not Webdriver를 사용하여 동일하게 찾을 수 있습니까? – lAH2iV

0

대답은 간단합니다. 우선, iframe 또는 프레임을 "팝업 창으로 표시"할 수 없습니다. 당신은 아마 그것의 자신의 창 핸들과 별도의 팝업 창이 열리고 그것의 자신의 임베디드 iframe이 있다는 것을 의미합니까? 그렇다면 driver.switchTo.frame (0)을 또 호출하여 프레임에 액세스하기 전에 driver.switchTo.window (handle)를 사용하십시오. 그 다음에는 driver.findElement (By)와 다른 행동을 취해야합니다.

void switchToPopupWithClickAndClose() { 
    driver.switchTo.window(handle); 
    driver.switchTo.frame(0); 
    driver.findElement(By.id("elId")).click(); 

    if (driver.getWindowHandles().size() > 1) {//popup still open 
     driver.switchTo.defaultContent(); 
     driver.close(); 
     driver.switchTo().defaultContent();// switch to default content of 
             // original window 
    } 
} 
0

이전 게시물이지만 여전히 팝업 프레임이 붙어 있지 않아서 유효합니다.

int totalframes = driver.FindElements(By.TagName("iframe")).Count(); 
: 프레임 수 1

전에 창문의 수를 팝업 후

int windows = driver.WindowHandles.Count(); 

: 문제는 팝업이 표시되면, 나는 창문의 수를 계산한다

은 팝업 전후에 2입니다. 따라서 프레임에 이미 프레임이있는 것처럼 보이며 페이지에서 트리거 될 때까지 숨겨집니다. 팝업은 보고서를 내보내려는 파일 유형을 선택하는 별도의 창으로 나타납니다. 새 창에서 요소를 가져올 수는 없지만 프레임을 전환하려고합니다.

관련 문제