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(); } }
출력