๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

SQA/Automation

Selenium ๋งˆ์šฐ์Šค์—์„œ ์†๋–ผ๊ธฐ Release ์‚ฌ์šฉ๋ฒ•

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ clickAndHold ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•ด ๋ณด์•˜๋Š”๋ฐ, ๋งˆ์šฐ์Šค๋ฅผ ํด๋ฆญํ•œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด ์ฃผ์—ˆ์—ˆ๋‹ค. ์˜ค๋Š˜์€ ๋งˆ์šฐ์Šค ํด๋ฆญ์„ ์ค‘์ง€ํ•˜๋Š” release() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์ž. 
 
 

Release-์‚ฌ์šฉ๋ฒ•
Release ์‚ฌ์šฉ๋ฒ•

 
 
 

release ( )

 
release ์•ก์…˜์€ ๋งˆ์šฐ์Šค์—์„œ ์†์„ ๋–ผ๊ณ  ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์›ํ•˜๋Š” ์œ„์น˜์— ๋‚ด๋ ค๋†“์„ ์ˆ˜ ์žˆ๋Š” ์•ก์…˜์ด๋‹ค. release ์•ก์…˜์€ ์ „๋‹ฌ๋ฐ›๋Š” ์ธ์ž๊ฐ€ ์—†๊ณ , Actions ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
 
๋‹ค์Œ ์˜ˆ์ œ๋Š” ์›ํ•˜๋Š” ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ ์ผ๋ถ€๋ฅผ ๋“œ๋ž˜๊ทธํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. ์‚ฌ์šฉ์ž์˜ ์•ก์…˜ ๋นŒ๋“œ์— ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์— release() ์•ก์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ, ํด๋ฆญํ–ˆ๋˜ ๋งˆ์šฐ์Šค์—์„œ ์†์„ ๋–ผ๋Š” ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

@Test
  public void f() {
	  //๋ฒ ํ† ๋ฒค ๋„ค์ด๋ฒ„ ์ง€์‹๋ฐฑ๊ณผ
	  driver.get("https://terms.naver.com/entry.naver?docId=351954&cid=60516&categoryId=60516");
	  
	  Actions actions = new Actions(driver);
	 
	  WebElement start = driver.findElement(By.xpath("//*[@id=\"content\"]/div[2]/div[1]/h2"));
	  
      //๋“œ๋ž˜๊ทธ๋ฅผ ์›ํ•˜๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ์ขŒํ‘œ๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์˜ฎ๊ฒจ์ค€๋‹ค.
	  actions.clickAndHold(start)
	  		.moveByOffset(580/2 ,11+23)
				.release()
	  		.perform();
	  
  }

 
๊ฒฐ๊ณผ ํ™”๋ฉด์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
 

๊ฒฐ๊ณผ-์ด๋ฏธ์ง€
๊ฒฐ๊ณผ ์ด๋ฏธ์ง€

 
 
 
 
 

์›น ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” release

release์— ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ธ์ž๋ฅผ ์ฃผ์–ด ๋™์ž‘ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์œ„์˜ ์˜ˆ์ œ์™€ ๊ฐ™๋‹ค.
 

@Test
public void f() {
  //๋ฒ ํ† ๋ฒค ๋„ค์ด๋ฒ„ ์ง€์‹๋ฐฑ๊ณผ
  driver.get("https://terms.naver.com/entry.naver?docId=351954&cid=60516&categoryId=60516");
  
  Actions actions = new Actions(driver);
 
  //start๋Š” ๋ฃจํŠธ๋น„ํžˆ ํŒ ๋ฒ ํ† ๋ฒค(h2) > end๋Š” 
  WebElement start = driver.findElement(By.xpath("//*[@id=\"content\"]/div[2]/div[1]/h2"));
  WebElement endPoint = driver.findElement(By.xpath("//*[@id=\"size_ct\"]/div[1]/div/div[1]"));  
  
  actions.clickAndHold(start)
  		.release(endPoint)
  		.perform();
  
}

 
 
์œ„์˜ ์˜ˆ์ œ ์ฝ”๋“œ์—์„œ endPoint ๋ฅผ ์žก์„ ๋•Œ, ์•„๋ž˜์˜ div.thmb.thmb_border ์˜์—ญ์„ ์žก์•˜๋‹ค. ์ด๊ฒƒ์€ ์ •ํ•ด์ง„ ๊ฐ์ฒด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. html์š”์†Œ๋ฅผ ๊ฒ€์‚ฌํ•˜๊ณ , ์ ์ ˆํ•œ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์„ ํƒํ•˜๊ณ , ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๋ฉด์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์•ก์…˜์„ ์ˆ˜ํ–‰ํ•ด ๋ณด๋ฉด์„œ ์ฐพ์•„์•ผ ํ•œ๋‹ค. ๋งŽ์€ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
 
 

div.thmb.thmb_border ์˜์—ญ
div.thmb.thmb_border ์˜์—ญ

 
 
์ฒ˜์Œ์—๋Š” div.headword_title ์„ ์žก์•˜์—ˆ๋Š”๋ฐ, ์ œ๋Œ€๋กœ ์„ ํƒ๋˜์ง€ ์•Š์•˜๋‹ค. ํ•ด๋‹น ์ „์ฒด ์˜์—ญ์˜ ์ค‘์•™์œผ๋กœ ๋งˆ์šฐ์Šค๊ฐ€ ์ด๋™ํ•ด์„œ release๋˜๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์˜€๋‹ค.
 
 

div.headword_title ์˜์—ญ
div.headword_title ์˜์—ญ

 
์‹ค์ œ๋กœ ๋งˆ์šฐ์Šค๋กœ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ˆ˜ํ–‰ํ•ด ๋ณด๋ฉด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋” ์‰ฝ๊ฒŒ ์ž‘์„ฑ ๊ฐ€๋Šฅํ•  ๊ฒƒ ๊ฐ™๋‹ค.