[JAVA #9] [Web Automation #9] Controlling STEEMIT web pages with Selenium #7 Timeouts [KR]

june0620(70)
Published in
#kr
Words
146
Reading
1 min
Listen
Play
7y

redsjavahouse1591357_1280.jpg
image source: pixabay


오늘은 Selenium이 제공하는 Timeouts을 배워 본다. timeouts() 메서드는 manage() 내에 존재하고 아래의 세개 메서드를 제공한다.
image.png

1. implicitlyWait

이 아이는 Webdriver편에서 배웠으니 패스.
[JAVA 6#] [Web Automation 6#] Controlling STEEMIT web pages with Selenium #4 WebDriverWait [KR]

2. pageLoadTimeouts

말 그대로 페이지가 모두 로딩되기까지의 타임아웃 시간을 설정한다. 시간을 초과하면 TimeOutException을 던진다.
인자는 time과 시간단위이고, time을 부수로 설정할 경우 무한대로 기다린다. 👇

driver.manage().timeouts().pageLoadTimeout(-1, TimeUnit.SECONDS);

Selenium의 driver.get()와 driver.navigate().to()에만 적용된다. 즉 클릭으로 페이지 이동할 때에는 적용되지 않는다.

성능 테스트 혹은 IE 브라우저로 사용할 경우 효과가 있다.

3. setScriptTimeout

비동기시 스크립트 실행 완료 타임아웃을 설정하고 초과하면 TimeOutException을 던진다.
이 메서드는 executeAsyncScript로 작성된 javascipt코드에만 영향을 미치고 다른 코드에는 영향이 없다. executeScript로 작성된 코드도 해당하지 않는다.

또한 executeAsyncScript를 사용할 때 필수로 setScriptTimeout을 설정해야 한다. 이유는 setScriptTimeout의 디폴트 값이 0인데 보통 javascript 코드는 실행시간이 0초가 넘으므로 타임아웃을 설정해 주어야 한다.


package com.steem.webatuo;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Wait;
import org.openqa.selenium.support.ui.WebDriverWait;

import io.github.bonigarcia.wdm.WebDriverManager;

public class Steemit {

 public static void main(String[] args) throws InterruptedException {
 WebDriverManager.chromedriver().setup();
 WebDriver driver = new ChromeDriver();
 
 driver.get("https://steemit.com");
 driver.manage().timeouts().setScriptTimeout(20, TimeUnit.SECONDS);
 driver.manage().timeouts().pageLoadTimeout(4, TimeUnit.SECONDS);
 driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
 
 Wait<WebDriver> wait = new WebDriverWait(driver, 10);
 
 /**
  * Some actions
  */
 
 Thread.sleep(5000);
 driver.quit();
 }

}

.
.
.
.
[Cookie 😅]
Seleniun java lib version: 3.141.59

[JAVA #9] [Web Automation #9] Controlling STEEMIT web pages with Se... | Ecency