[μ λ λμ/Selenium, C#] C#μμ Seleniumμ μ΄μ©ν λ€μ΄λ² μλ λ‘κ·ΈμΈ νλ‘κ·Έλ¨ λ§λ€κΈ° (μμ ν¬ν¨)
μ λ λμμ κ΄ν μ λ°μ μΈ λ΄μ©μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
μ λ λμ(Selenium)μ΄λ? μ λ λμμ μΉ λΈλΌμ°μ μλνλ₯Ό μν λΌμ΄λΈλ¬λ¦¬μ λλ€. λμ 보μ΄λ λͺ¨λ μ½ν μΈ μ μ λ ₯, ν΄λ¦, κ°μ Έμ€κΈ° λ±μ΄ κ°λ₯ν©λλ€. κ°λ¨ν μΉ μ¬μ΄νΈ μ μλΆν° λ‘κ·ΈμΈ, κ²μ, οΏ½
luckygg.tistory.com
μ΄λ² ν¬μ€ν μμλ μ€μ μ λ λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ»κ² μ¬μ©νλμ§ μμλ₯Ό ν΅ν΄ μμλ³΄κ² μ΅λλ€.
λ€μ΄λ² μλ λ‘κ·ΈμΈ λ§λ€κΈ°
λ€μ΄λ² μλ λ‘κ·ΈμΈ νλ‘κ·Έλ¨μ μμλ‘ λ§λ€μ΄ λ³΄κ² μ΅λλ€. μ°μ , μ¬λμ΄ μμ νλ€λ©΄ μλμ κ°μ μμμΌλ‘ μνν κ²μ λλ€.
β λ€μ΄λ²μ μ μ.
β‘ λ‘κ·ΈμΈ λ²νΌ ν΄λ¦.
β’ μμ΄λ λ° λΉλ°λ²νΈ μ λ ₯.
β£ λ‘κ·ΈμΈ λ²νΌ ν΄λ¦.
λ§μ°¬κ°μ§λ‘ νλ‘κ·Έλλ°μ νλ €λ©΄ λμΌν μ μ°¨μ XPath μ 보(λλ Class name, Tag λ± μκ΄μμ΅λλ€)κ° νμν©λλ€. ν¬λ‘¬μμ λ€μ΄λ²μ μ μνκ³ F12λ₯Ό λλ¬ μ μ μ°¨λλ‘μ XPathλ₯Ό μ·¨λν΄ λ΄€μ΅λλ€.
λ‘κ·ΈμΈ λ²νΌ: //*[@id="account"]/div/a/i
μμ΄λ μ λ ₯: //*[@id="id"]
λΉλ°λ²νΈ μ λ ₯: //*[@id="pw"]
λ‘κ·ΈμΈ λ²νΌ: //*[@id="log.login"]
μ΄μ C# μμ νλ‘κ·Έλ¨μμ μ§ννκ² μ΅λλ€. μλμ κ°μ΄ μμ£Ό κ°λ¨νκ² λ‘κ·ΈμΈ νΌμ μμ±νμ΅λλ€.

κ·Έλ¦¬κ³ λ€μμ€νμ΄μ€ μ μΈκ³Ό Chromeμ μ΄μ©νκΈ° μν κ°μ’ κ°μ²΄λ€μ μ μν©λλ€.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using OpenQA.Selenium; using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Support.UI; namespace ExamSelenium { public partial class Form1 : Form { protected ChromeDriverService _driverService = null; protected ChromeOptions _options = null; protected ChromeDriver _driver = null; public Form1() { InitializeComponent(); _driverService = ChromeDriverService.CreateDefaultService(); _driverService.HideCommandPromptWindow = true; _options = new ChromeOptions(); _options.AddArgument("disable-gpu"); } } }
λ€μμΌλ‘ 'λ‘κ·ΈμΈ' λ²νΌμ μ΄λ²€νΈμλ μλμ κ°μ΄ ꡬνν©λλ€.
private void buttonLogin_Click(object sender, EventArgs e) { string caption = buttonLogin.Text; if (caption == "λ‘κ·ΈμΈ") { string id = textBoxID.Text; string pw = textBoxPW.Text; if (checkBoxIsShow.Checked == false) _options.AddArgument("headless"); // μ°½μ μ¨κΈ°λ μ΅μ
μ
λλ€. _driver = new ChromeDriver(_driverService, _options); _driver.Navigate().GoToUrl("https://www.naver.com"); // μΉ μ¬μ΄νΈμ μ μν©λλ€. _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10); var element = _driver.FindElementByXPath("//*[@id='account']/div/a/i"); element.Click(); Thread.Sleep(3000); element = _driver.FindElementByXPath("//*[@id='id']"); element.SendKeys(id); element = _driver.FindElementByXPath("//*[@id='pw']"); element.SendKeys(pw); element = _driver.FindElementByXPath("//*[@id='log.login']"); element.Click(); buttonLogin.Text = "λ‘κ·Έμμ"; } else { _driver.Quit(); buttonLogin.Text = "λ‘κ·ΈμΈ"; } }
ν κ°μ§ μ£Όμμ¬νμ΄ μμ΅λλ€. λΉ λ₯΄κ² μΉ μ¬μ΄νΈ μ μ΄λ₯Ό μλν κ²½μ°, μΉ νμ΄μ§ λ€μ΄λ‘λκ° λλμ§λ μμλλ° μ μ΄νλ κ²½μ°κ° λ°μν©λλ€. μ΄ κ²½μ° Exception μΌλ‘ λΉ μ§κ² λ©λλ€. μ΄λ₯Ό λ°©μ§νκΈ° μν΄ μ μμ μλ ν¬ν¨λμ΄ μλ Implicitwait μ€μ μ΄λ WebDriverWait κ°μ²΄λ₯Ό μ¬μ©νμ¬ μ§μ° μκ°μ μΆκ°ν μ μμ΅λλ€. νμ§λ§ κ²½νμ μΉ νμ΄μ§κ° λ€μ΄λ‘λλμ§ μμλλ°λ μλνλκ΅°μ. κ·Έλμ μ λ μμ½μ§λ§ Thread.Sleep() ν¨μλ₯Ό μ¬μ©ν©λλ€.
μ§κΈκΉμ§μ μμ μ½λλ μ λ§ κ°λ¨ν λ΄μ©μ λλ€. μ 무 μλνλ₯Ό μν κ²½μ°, μμμ μΌλ‘ νλ λ΄μ©μ μ μμμ²λΌ XPathλ Tag λ±μ μ 보λ₯Ό μ»κ³ μ μ λμνλμ§ μΌμΌμ΄ νμΈν΄μΌ ν©λλ€. κ·Έλ¦¬κ³ νμ μ°½μ΄ νμλλ€λ κ°, μλ¬κ° λ°μν κ²½μ°μ μμΈμ²λ¦¬λ μ΄λ»κ² ν μ§ λ±μ μλ리μ€λ ꡬμν΄μΌ ν©λλ€.
무μ보λ€λ ν μ€νΈ μ€μ λΉ λ₯Έ μΉμ¬μ΄νΈ μ μ΄λ‘ ν΄λΉ μ¬μ΄νΈμ μλ²μ λΆλ΄μ΄ λμ§ μλλ‘ μ£ΌμνμκΈ° λ°λλλ€. 첨λΆλ μμ μ½λμλ μ©λ λ¬Έμ λ‘ Selenium dllλ€μ μ κ±°νμ΅λλ€.
'Programming > Selenium' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λκΈ
μ΄ κΈ κ³΅μ νκΈ°
-
ꡬλ
νκΈ°
ꡬλ νκΈ°
-
μΉ΄μΉ΄μ€ν‘
μΉ΄μΉ΄μ€ν‘
-
λΌμΈ
λΌμΈ
-
νΈμν°
νΈμν°
-
Facebook
Facebook
-
μΉ΄μΉ΄μ€μ€ν 리
μΉ΄μΉ΄μ€μ€ν 리
-
λ°΄λ
λ°΄λ
-
λ€μ΄λ² λΈλ‘κ·Έ
λ€μ΄λ² λΈλ‘κ·Έ
-
Pocket
Pocket
-
Evernote
Evernote
λ€λ₯Έ κΈ
-
[μ λ λμ/Selenium. C#] μΉ νμ΄μ§μ ν μ€νΈ λ°μ€μ λ¬Έμμ΄ μ λ ₯νκΈ° (μμ ν¬ν¨)
[μ λ λμ/Selenium. C#] μΉ νμ΄μ§μ ν μ€νΈ λ°μ€μ λ¬Έμμ΄ μ λ ₯νκΈ° (μμ ν¬ν¨)
2020.08.04 -
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
2020.08.02 -
[μ λ λμ/Selenium, C#] μΉ νμ΄μ§μ λ²νΌ ν΄λ¦νκΈ° (μμ ν¬ν¨)
[μ λ λμ/Selenium, C#] μΉ νμ΄μ§μ λ²νΌ ν΄λ¦νκΈ° (μμ ν¬ν¨)
2020.08.01 -
[μ λ λμ/Selenium, C#] C#μμ Seleniumμ μ¬μ©νκΈ° μν μ€λΉ λ¨κ³
[μ λ λμ/Selenium, C#] C#μμ Seleniumμ μ¬μ©νκΈ° μν μ€λΉ λ¨κ³
2020.03.22
λκΈμ μ¬μ©ν μ μμ΅λλ€.