λ°˜μ‘ν˜•

μ…€λ ˆλ‹ˆμ›€μ— κ΄€ν•œ μ „λ°˜μ μΈ λ‚΄μš©μ€ μ•„λž˜ 링크λ₯Ό μ°Έκ³ ν•΄μ£Όμ„Έμš”.

[μ…€λ ˆλ‹ˆμ›€/Selenium, C#] C#μ—μ„œ μ…€λ ˆλ‹ˆμ›€μ„ μ‚¬μš©ν•˜λŠ” 방법 총정리

 

[μ…€λ ˆλ‹ˆμ›€/Selenium, C#] C#μ—μ„œ μ…€λ ˆλ‹ˆμ›€μ„ μ‚¬μš©ν•˜λŠ” 방법 총정리

μ…€λ ˆλ‹ˆμ›€(Selenium)μ΄λž€? μ…€λ ˆλ‹ˆμ›€μ€ μ›Ή λΈŒλΌμš°μ € μžλ™ν™”λ₯Ό μœ„ν•œ λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€. λˆˆμ— λ³΄μ΄λŠ” λͺ¨λ“  μ½˜ν…μΈ μ— μž…λ ₯, 클릭, κ°€μ Έμ˜€κΈ° 등이 κ°€λŠ₯ν•©λ‹ˆλ‹€. κ°„λ‹¨ν•œ μ›Ή μ‚¬μ΄νŠΈ 접속뢀터 둜그인, 검색, οΏ½

luckygg.tistory.com

μ†Œκ°œ

λ³Έ ν¬μŠ€νŒ…μ—μ„œλŠ” μ›Ή νŽ˜μ΄μ§€μ˜ iFrame νƒœκ·Έλ‘œ μ „ν™˜ν•˜λŠ” 방법을 μ†Œκ°œν•©λ‹ˆλ‹€.

iFrame νƒœκ·Έλž€?

iFrame νƒœκ·ΈλŠ” HTML μ›Ή νŽ˜μ΄μ§€μ— λ‹€λ₯Έ μ›Ή νŽ˜μ΄μ§€κ°€ μΆ”κ°€λœ 것을 μ˜λ―Έν•©λ‹ˆλ‹€. λΆ„λͺ… 개발자 λ„κ΅¬λ‘œ μš”μ†Œλ₯Ό ν™•μΈν–ˆλŠ”λ°, μ½”λ“œμ—μ„œ μ ‘κ·Όν•  λ•Œ 찾을 수 μ—†λ‹€λŠ” μ—λŸ¬κ°€ λ°œμƒλœλ‹€λ©΄, μš”μ†Œκ°€ iFrame νƒœκ·Έμ— μ‘΄μž¬ν•˜λŠ”μ§€ 확인해야 ν•©λ‹ˆλ‹€.

μ•„λž˜ μ˜ˆμ œλŠ” Date Pickerλ₯Ό μ œκ³΅ν•˜λŠ” jQuery UI μ‚¬μ΄νŠΈμž…λ‹ˆλ‹€.
링크: https://jqueryui.com/datepicker/

iFrame νƒœκ·Έ μ˜μ—­

κ°€μš΄λ°μ— μœ„μΉ˜ν•œ ν…μŠ€νŠΈ λ°•μŠ€λŠ” iFrame νƒœκ·Έ 내에 μ‘΄μž¬ν•˜λ―€λ‘œ, μ…€λ ˆλ‹ˆμ›€μœΌλ‘œ μ ‘κ·Ό μ‹œ iFrame으둜 μ „ν™˜ν•΄μ•Ό κ°€λŠ₯ν•©λ‹ˆλ‹€. 

따라 ν•˜κΈ°

μœ„ μ‚¬μ΄νŠΈμ˜ iFrame νƒœκ·Έ XPathλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

//*[@id="content"]/iframe"

iFrame νƒœκ·Έ 및 메인 μœˆλ„μš°λ‘œ μ „ν™˜ν•˜λŠ” μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

string winHandleBefore = _driver.CurrentWindowHandle;

//iFrame μ°ΎκΈ°.
WebDriverWait wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(5));
var iFrame = wait.Until(_drv => _drv.FindElement(By.XPath("//*[@id='content']/iframe")));

//iFrame μ „ν™˜.
_driver.SwitchTo().Frame(iFrame);

//iFrame에 μ‘΄μž¬ν•˜λŠ” 컨트둀 μš”μ†Œμ— μ ‘κ·Όν•˜κΈ°
//...
                
//메인 μœˆλ„μš°λ‘œ μ „ν™˜.
_driver.SwitchTo().Window(winHandleBefore);
λ°˜μ‘ν˜•