[μ λ λμ/Selenium, C#] μ ν μμ± λ° λ«λ λ°©λ² (μμ ν¬ν¨)
μ λ λμμ κ΄ν μ λ°μ μΈ λ΄μ©μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
μ λ λμ(Selenium)μ΄λ? μ λ λμμ μΉ λΈλΌμ°μ μλνλ₯Ό μν λΌμ΄λΈλ¬λ¦¬μ λλ€. λμ 보μ΄λ λͺ¨λ μ½ν μΈ μ μ λ ₯, ν΄λ¦, κ°μ Έμ€κΈ° λ±μ΄ κ°λ₯ν©λλ€. κ°λ¨ν μΉ μ¬μ΄νΈ μ μλΆν° λ‘κ·ΈμΈ, κ²μ, οΏ½
luckygg.tistory.com
μκ°
λ³Έ ν¬μ€ν μμλ Chrome Web Browserμμ μ ν(New Tab)μ μμ±νκ³ λ«λ λ°©λ²μ μκ°ν©λλ€.
λ°λΌ νκΈ°
μ νμ μμ±νλ λ°©λ²μ λ κ°μ§κ° μμ΅λλ€. JavaScriptExecutor
λ₯Ό μ΄μ©νλ λ°©λ²κ³Ό, λ¨μΆν€
λ₯Ό μ μ‘νλ λ°©λ²μ
λλ€.
//1. JavaScript
((IJavaScriptExecutor)_driver).ExecuteScript("window.open();");
//2. Send Key
_driver.FindElement(By.CssSelector("body")).SendKeys(OpenQA.Selenium.Keys.Control + "t");
μ λ μλμ νκ²½μμ ν
μ€νΈλ₯Ό νκ³ μλλ°, λ¨μΆν€ μ μ‘ λ°©μμ λμνμ§ μμμ΅λλ€. νμ§λ§ JavaScriptExecutor
λ₯Ό μ΄μ©ν λ°©λ²μ μ μμ μΌλ‘ μ νμ΄ μμ±λ©λλ€. μ΄ κΈμ 보μλ λΆλ€μ λλλλ‘ μ¬μ©νμλ©΄ λκ² μ΅λλ€.
.Net Framework 4.6.1
Selenium.Chrome.WebDriver 85.0.0
Selenium.WebDriver 3.141.0
νμ μμ±νμΌλ©΄ λλΌμ΄λ²μ ν¬μ»€μ€λ₯Ό μ νμΌλ‘ μ΄λν΄μΌ ν©λλ€. μ νμ΄ μμ±λλ©΄ νμ λ§μ§λ§μ μμΉνλ―λ‘, μμ±λ νμ Window Handleμ _driver.WindowHandles.Last()λ‘ μ»μ μ μμ΅λλ€. λ§μ½, νμ μμ±νκ³ μ²« λ²μ§Έ νμ΄λ νΉμ νμΌλ‘ μ΄λνκ³ μΆμΌλ©΄ μλμ μμ μ²λΌ μμ©ν μ μμ΅λλ€.
//λ§μ§λ§ νμΌλ‘ μ΄λ.
_driver.SwitchTo().Window(_driver.WindowHandles.Last());
//첫 νμΌλ‘ μ΄λ.
_driver.SwitchTo().Window(_driver.WindowHandles.First());
//νΉμ ν μ μ₯ ν μ΄λ.
string winHandleBefore = _driver.CurrentWindowHandle;
_driver.SwitchTo().Window(winHandleBefore);
//μ‘΄μ¬νλ λͺ¨λ ν νμΈ ν μ΄λ.
foreach(var window in _driver.WindowHandles)
{
_driver.SwitchTo().Window(window);
}
μλ‘μ΄ νμΌλ‘ ν¬μ»€μ€λ₯Ό μ΄λνμΌλ©΄, μ΄μ μ νμ΄μ§μμ μμ μ΄ μμλ©λλ€. μλ₯Ό λ€μ΄, ν μμ± ν μλ μ½λλ₯Ό μ€ννλ©΄, μ νμμ μλ‘μ΄ μ¬μ΄νΈλ‘ μ΄λνλ κ²μ΄μ£ .
//Naver.comμΌλ‘ μ΄λ.
_driver.Navigate().GoToUrl("https://naver.com");
λ§μ½, μλ‘μ΄ νμμ μμ μ΄ λλμ νμ λ«μμΌ νλ κ²½μ°μλ μλμ κ°μ΄ μ½λλ₯Ό μ¬μ©ν©λλ€. νμ΄ νλλ©΄ μΉ λΈλΌμ°μ κ° λ«νμ§λ§, μ¬λ¬ νμ΄ μ‘΄μ¬νλ©΄ ν¬μ»€μ€κ° μλ νμ΄ λ«νλλ€.
//νμ¬ ν λ«κΈ°.
_driver.Close();
//ν λ«μ ν νΉμ νμΌλ‘ ν¬μ»€μ€ μ΄λ.
_driver.SwitchTo().Window(_driver.WindowHandles.First());
λ§μ½, νμ λ«κ³ ν¬μ»€μ€λ₯Ό μ΄λνμ§ μμ μ± κ·Έλλ‘ μμ μ μ§ννλ©΄ μλ¬κ° λ°μν©λλ€. νμ λ«μ νμλ λ°λμ μ¬λ°λ₯Έ νμΌλ‘ ν¬μ»€μ€λ₯Ό μ΄λν΄μΌ ν©λλ€.
λ§μ°¬κ°μ§λ‘ μμ μ½λλ₯Ό 첨λΆνμ΅λλ€. μ°Έκ³ λ‘ μ λ‘λ μ©λ λ¬Έμ λ‘ ν¨ν€μ§ νμΌμ μ κ±°νμ΅λλ€. Seleniumμ μ¬μ©νκΈ° μν ν¨ν€μ§λ₯Ό μ€μΉν ν λμν΄λ³΄μΈμ.