반응형
jmeter 의 webdriver 를 사용하여 selenium 을 사용하다보면
iframe 을 포함하고 있는 페이지의 동작이 필요한 경우가 발생하게 됩니다.
하지만 selenium 에서 iframe 에 있는 아이디나 tag, xpath, linkText 등등 여러가지를 사용해서
iframe 내에 있는 동작을 처리하려고 할 때 정상적으로 되지 않는 경우가 발생합니다.
<html lang="ko"><script src="chrome-extension://ljdobmomdgdljniojadhoplhkpialdid/page/prompt.js"></script><script src="chrome-extension://ljdobmomdgdljniojadhoplhkpialdid/page/runScript.js"></script><head>
<link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon">
<link rel="icon" href="/images/favicon.ico" type="image/x-icon">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<script type="text/javascript" src="/js/jquery/jquery-3.5.1.min.js"></script>
<script type="text/javascript" src="/js/jquery/jquery.serializeObject.min.js"></script>
<title>Test</title>
....
<body>
....
<iframe id="iframe-1">
#document
<!DOCTYPE html>
<html>
<head>
<body>
....
....
....
<div id="iframe_div">
....
....
위의 예시는 기본 html 내 iframe 이 속해있는 구조입니다.
이런 구조에서 iframe 내에 있는 iframe_div 를 조작하려고 하면 커서가 iframe 쪽으로 이동하지 않았기 때문에
로그도 남지 않고 아무런 반응이 일어나지 않는 경우가 있습니다.
그럼 ifrmae 쪽으로 커서를 이동해주어야 iframe 내에 있는
컴포넌트들이 동작을 할텐데 어떻게 해야하는지 알아보겠습니다.
var iframe = WDS.browser.findElement(org.openqa.selenium.By.xpath("//iframe[@name='iframe-1']"))
WDS.browser.switchTo().frame(iframe)
wait.until(ui.ExpectedConditions.visibilityOfElementLocated(org.openqa.selenium.By.id('iframe_div')))
WDS.browser.findElement(org.openqa.selenium.By.xpath("//div[@id='iframe_div']/div[4]/div/div/div/div[2]/span")).click();
WDS.browser.findElement(org.openqa.selenium.By.xpath("//div[@id='iframe_div']/div[27]/div/img")).click();
방법은 위와 같이 아주 간단합니다.
iframe 을 식별할 수 있는 iframe-1 을 선택할 수 있게 switchTo function 을 사용하면 간단하게 커서 이동이 됩니다.
그 후에는 iframe 내에 있는 객체들을 마음껏 사용할 수 있습니다
간단하게 사용할 수 있으니 테스트한번 해보시기 바랍니다.
반응형
'IT > JAVA JSP' 카테고리의 다른 글
React 버전 낮추기 & 오류 해결 (0) | 2023.02.01 |
---|---|
spring mybatis mysql 과 oracle 설정 방법 (0) | 2022.04.07 |
jMeter plugin webDriver 설치 및 사용방법 (0) | 2021.03.05 |
Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver' 오류 해결 (0) | 2020.03.30 |
jquery 로 iframe form submit ( sample 포함 ) (0) | 2018.07.04 |