λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

SQA/Automation

Selenium 마우슀 μ΄λ™ν•˜κΈ° MoveByOffset μ‚¬μš©λ²•, Java

 

 

이전 ν¬μŠ€νŒ…μ— μ΄μ–΄μ„œ, μ…€λ ˆλ‹ˆμ›€μ˜ μ•‘μ…˜ APIλ₯Ό μ‚¬μš©ν•΄μ„œ μ‚¬μš©μž μ•‘μ…˜μ„ μˆ˜ν–‰ν•˜λŠ” 것을 곡뢀해 보고자 ν•œλ‹€. ν•΄λ‹Ή ν¬μŠ€νŒ…μ€ Java μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±ν–ˆλ‹€. 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” λ§ˆμš°μŠ€λ₯Ό μ›ν•˜λŠ” 곳으둜 μ›€μ§μ΄λŠ” ν•¨μˆ˜μΈ MoveByOffset() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄λ³Έλ‹€.
 
 

MoveByOffset-μ‚¬μš©λ²•
MoveByOffset μ‚¬μš©λ²•

 

MoveByOffset ( )

Actions ν΄λž˜μŠ€μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” 마우슀 μ•‘μ…˜μ€ 8가지가 μžˆλ‹€. μ˜€λŠ˜μ€ κ·Έ 쀑 ν•˜λ‚˜μΈ MoveByOffset() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄λ³΄μž. MoveByOffset() λ©”μ„œλ“œλŠ” μ›ΉνŽ˜μ΄μ§€μ—μ„œ μ›ν•˜λŠ” μ§€μ μœΌλ‘œ 마우슀 μ»€μ„œλ₯Ό μ΄λ™ν•œλ‹€.

 


 
x, y 거리 값을 인자둜 μ€˜μ„œ 마우슀 μ»€μ„œλ₯Ό μ΄λ™ν•œλ‹€. ν˜„μž¬ 마우슀 μœ„μΉ˜μ—μ„œ x, y λ°©ν–₯으둜 μ–Όλ§ŒνΌ 이동할 것인지 μ λŠ” 것이닀.
νŽ˜μ΄μ§€λ₯Ό λ‘œλ“œν–ˆμ„ λ•Œ, 포컀슀 값이 μ—†λ‹€λ©΄ (0,0)이 기본값이 λœλ‹€.
 
넀이버 ν™ˆμ— μ ‘μ†ν•˜κ³ , 마우슀 μ»€μ„œλ₯Ό [μ‡Όν•‘λΌμ΄λΈŒ] λ²„νŠΌ μœ„λ‘œ μ΄λ™ν•œλ‹€. xpathκ°€ μ•„λ‹Œ, λ‹€λ₯Έ μ†μ„±μœΌλ‘œ λ²„νŠΌμ„ κ°€μ Έμ˜¬ μˆ˜λ„ μžˆλ‹€.

@Test
public void f() {
	  //λ„€μ΄λ²„λ‘œ 이동
	  driver.get("https://www.naver.com/");
	  
	  //μ‡Όν•‘λΌμ΄λΈŒ λ²„νŠΌμ„ xpath둜 κ°€μ Έμ˜€κΈ° 
	  WebElement liveshop = driver.findElement(By.xpath("//*[@id=\"NM_FAVORITE\"]/div[1]/ul[1]/li[6]/a"));
	
	  Actions actions = new Actions(driver);
	  
	  actions.moveByOffset(liveshop.getLocation().getX(), liveshop.getLocation().getY())
             .perform();
}

λ²„νŠΌ μ—˜λ¦¬λ¨ΌνŠΈμ˜ ν…Œλ‘λ¦¬ 선을 κ³ λ €ν•˜μ—¬ μ’Œν‘œκ°’μ— borderκ°’(pxλ‹¨μœ„)을 더해주면 더 μ •ν™•ν•˜κ²Œ 이동할 수 μžˆλ‹€. μ‹€ν–‰ν•˜λ©΄ 마우슀만 μ΄λ™ν–ˆκΈ° λ•Œλ¬Έμ— μ•„λ¬΄λŸ° 일도 μΌμ–΄λ‚˜μ§€ μ•Šμ€ κ²ƒμ²˜λŸΌ 보인닀.

 


 
 
 

μš”μ†Œλ₯Ό ν΄λ¦­ν•˜λŠ” 방법

 
마우슀λ₯Ό μ΄λ™ν•΄μ„œ λ²„νŠΌμ„ ν΄λ¦­ν•˜κ³  μ‹Άλ‹€λ©΄ (λ˜λŠ” μ œλŒ€λ‘œ λ§ˆμš°μŠ€κ°€ μ΄λ™ν•œ 것인지 μ•Œκ³  μ‹Άλ‹€λ©΄), click() λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•΄μ„œ μš”μ†Œλ₯Ό 클릭해보면 λœλ‹€. μ•„λž˜μ— μˆ˜μ •ν•œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄λ‘μ—ˆλ‹€. click() λ©”μ„œλ“œμ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œ μ‚΄νŽ΄λ³Ό 것이닀.
 

actions.moveByOffset(liveshop.getLocation().getX(), liveshop.getLocation().getY())
             .click()
             .perform();

 
 

ν•¨κ»˜λ³΄λ©΄ 쒋은 포슀트

Selenium 마우슀 클릭 μ•‘μ…˜ Click μ‚¬μš©λ²•