Selenium webdriver에서 iframe으로 작업할 수 있습니다. 프레임은 HTML 코드에서

Selenium은 기본적으로 상위 브라우저 드라이버에 액세스할 수 있습니다. 프레임 요소에 액세스하려면 드라이버 포커스가 기본 브라우저 창에서 프레임으로 이동해야 합니다. 프레임으로 이동하는 방법은 여러 가지가 있습니다. -
-
switchTo().frame(id) - 프레임의 id 또는 이름이 인수로 전달됩니다.
구문 -driver.switchTo().frame("id"), id가 있는 프레임으로 전환합니다.
-
switchTo().frame(m) - 프레임의 인덱스가 인수로 전달됩니다. 인덱스는 0부터 시작합니다.
구문 -driver.switchTo().frame(0), 페이지의 첫 번째 프레임으로 전환합니다.
-
switchTo().frame(webelement n) - 프레임의 webelement가 인수로 전달됩니다.
구문 -driver.switchTo().frame(l), webelement l이 있는 프레임으로 전환.
-
switchTo().defaultContent() – 프레임에서 메인 페이지로 포커스 전환
구문 -driver.switchTo().defaultContent()
예시
코드 구현.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class iFrameMethods{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://the-internet.herokuapp.com/frames");
driver.manage().timeouts().implicitlyWait(8, TimeUnit.SECONDS);
// identify element and click
driver.findElement(By.partialLinkText("Nested")).click();
// switching to frame with frame name
driver.switchTo().frame("frame-bottom");
WebElement m = driver.findElement(By.cssSelector("body"));
System.out.println("Frame text: " +m.getText());
driver.close();
}
} 출력
