수색…


통사론

  • 자바
  • driver.switchTo (). frame (문자열 이름);
  • driver.switchTo (). frame (String id);
  • driver.switchTo (). frame (int index);
  • driver.switchTo (). frame (WebElement frameElement);
  • driver.switchTo (). defaultContent ();
  • 기음#
  • driver.SwitchTo (). Frame (int frameIndex);
  • driver.SwitchTo (). Frame (IWebElement frameElement);
  • driver.SwitchTo (). Frame (string frameName);
  • driver.SwitchTo (). DefaultContent ();
  • 파이썬
  • driver.switch_to_frame (nameOrId)
  • driver.switch_to.frame (nameOrId)
  • driver.switch_to_frame (index)
  • driver.switch_to.frame (index)
  • driver.switch_to_frame (frameElement)
  • driver.switch_to.frame (frameElement)
  • driver.switch_to_default_content ()
  • driver.switch_to.default_content ()
  • 자바 스크립트
  • driver.switchTo (). frame (nameOrId)
  • driver.switchTo (). frame (index)
  • driver.switchTo (). defaultContent ()

매개 변수

매개 변수 세부
nameOrId 이름이 id 인 프레임을 선택하십시오.
색인 0부터 시작하는 인덱스로 프레임을 선택하십시오.
frameElement 이전에 위치한 WebElement를 사용하여 프레임을 선택하십시오.

Java를 사용하여 프레임으로 전환하려면

인스턴스의 경우 HTML 뷰 또는 요소의 HTML 소스 코드가 다음과 같이 iframe으로 래핑됩니다.

<iframe src="../images/eightball.gif" name="imgboxName" id="imgboxId">
   <p>iframes example</p>
   <a href="../images/redball.gif" target="imgbox">Red Ball</a>
</iframe><br />

... iframe의 웹 요소에서 액션을 수행하려면 먼저 아래 방법 중 하나를 사용하여 포커스를 iframe으로 전환해야합니다.

프레임 ID 사용 (iframe의 ID를 알고있는 경우에만 사용해야 함)

driver.switchTo().frame("imgboxId"); //imgboxId - Id of the frame

프레임 이름 사용 (iframe의 이름을 아는 경우에만 사용해야합니다).

driver.switchTo().frame("imgboxName"); //imgboxName - Name of the frame

프레임 인덱스 사용 (if 또는 iframe의 이름이없는 경우에만 사용해야 함). 여기서 인덱스는 모든 프레임 중에서 iframe의 위치를 ​​정의합니다.

driver.switchTo().frame(0); //0 - Index of the frame

참고 : 페이지에 세 개의 프레임이있는 경우 첫 번째 프레임은 인덱스 0에, 두 번째 프레임은 인덱스 1에, 세 번째 프레임은 인덱스 2에 있습니다.

이전에 위치한 webelement를 사용하십시오 (이미 프레임을 찾은 다음 WebElement 로 반환 한 경우에만 사용해야합니다).

driver.switchTo().frame(frameElement); //frameElement - webelement that is the frame

그래서 Red Ball 앵커를 클릭하십시오 :

driver.switchTo().frame("imgboxId");
driver.findElement(By.linkText("Red Ball")).Click();

Java를 사용하여 프레임을 벗어나려면

주 문서 또는 페이지의 첫 번째 프레임으로 포커스를 전환합니다. 아래 구문을 사용해야합니다.

driver.switchTo().defaultContent();

C #을 사용하여 프레임으로 전환

1. 색인으로 프레임으로 전환하십시오.

여기서 색인 1로 전환합니다. 색인은 페이지의 프레임 순서를 나타냅니다. 이것은 프레임 ID 나 이름이 훨씬 더 신뢰할 수있는 최후의 수단으로 사용해야합니다.

driver.SwitchTo().Frame(1);

2. 이름으로 프레임으로 전환하십시오.

driver.SwitchTo().Frame("Name_Of_Frame");

3. IWebElement를 전달하여 제목, ID 또는 다른 항목별로 프레임으로 전환합니다.

ID 또는 제목으로 프레임으로 전환하려면 웹 요소를 매개 변수로 전달해야합니다.

driver.SwitchTo().Frame(driver.FindElement(By.Id("ID_OF_FRAME")));
driver.SwitchTo().Frame(driver.FindElement(By.CssSelector("iframe[title='Title_of_Frame']")));

또한 프레임이 나타날 때까지 몇 초가 걸리는 경우 기다려야 할 수도 있습니다.

new WebDriverWait(driver, TimeSpan.FromSeconds(10))
    .Until(ExpectedConditions.ElementIsVisible(By.Id("Id_Of_Frame")));

프레임 벗어남 :

driver.SwitchTo().DefaultContent()

C #를 사용하여 프레임을 벗어나려면

주 문서 또는 페이지의 첫 번째 프레임으로 포커스를 전환합니다. 아래 구문을 사용해야합니다.

webDriver.SwitchTo (). DefaultContent ();

상위 프레임의 하위 프레임 간을 전환합니다.

상위 프레임 (프레임 - 상위)이 있다고 가정합니다. 및 2 개의 하위 프레임 (Frame_Son, Frame_Daughter). 다양한 조건과 처리 방법을 볼 수 있습니다.

1. 부모로부터 아들 또는 딸에게 :

 driver.switchTo().frame("Frame_Son");
 driver.switchTo().frame("Frame_Daughter");

2.Phone에서 Parent로 : 부모가 기본 프레임 인 경우 기본 프레임으로 전환하고, 그렇지 않으면 기본 프레임 전환에서 상위 프레임으로 전환합니다. 그러나 당신은 아들에서 부모로 직접 전환 할 수 없습니다.

driver.switchTo().defaultContent(); 
driver.switchTo().frame("Frame_Parent");

3. 아들에서 딸까지 : 언니가 실수를 저 지르지 않으면 그녀에게 소리 지르지 말고 그냥 부모님에게 연락하십시오. 마찬가지로 부모 프레임과 자식 프레임에 제어권을 부여합니다.

driver.switchTo().defaultContent(); 
driver.switchTo().frame("Frame_Parent");
driver.switchTo().frame("Frame_Daughter");

프레임이로드 될 때까지 기다립니다.

꽤 많은 경우에 프레임이 즉시 나타나지 않을 수 있으며 스위치가로드 될 때까지 기다려야 할 것입니다. 그렇지 않으면 NoSuchFrameException이 발생합니다.

따라서 전환하기 전에 항상 기다리는 것이 좋습니다. 다음은 프레임이로드 될 때까지 기다리는 이상적인 방법입니다.

try{
        new WebDriverWait(driver, 300).ignoring(StaleElementReferenceException.class).
                        ignoring(WebDriverException.class).
                        until(ExpectedConditions.visibilityOf((driver.findElement(By.id("cpmInteractionDivFrame"))));}
    catch{

// 프레임이 대기 시간 300 초 내에 표시되지 않는 경우에만 예외를 발생시킵니다.}



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow