[μ λ λμ/Selenium, C#] C#μμ Seleniumμ μ¬μ©νκΈ° μν μ€λΉ λ¨κ³
μμ¦ μ½λ‘λ λλ¬Έμ μ¬νκ·Όλ¬΄λ‘ μ ννλ κΈ°μ λ€μ΄ μ μ°¨ λκ³ μμ΅λλ€. μ μ§μ¬λλ λ§μ°¬κ°μ§μΈλ°μ. μ£Όλ§μ μ¬ν근무λ₯Ό μ€λΉνλ€κ³ ν΄μ νμ¬μμ λ¬΄μ¨ μΌμ νλμ§ μ΄ν΄λ΄€μ΅λλ€. κ·Έλ°λ° μκ° μΈλ‘ λ¨μ λ°λ³΅ μ λ¬΄κ° λ무 λ§λκ΅°μ. ν μλ‘, μμ μ μ΄λ€ λͺ©λ‘μ΄ μμΌλ©΄ νλνλ μμ΄ν μ μΉ μ¬μ΄νΈμμ κ²μν ν νΉμ κ²°κ³Ό κ°μ λ€μ μμ μ μ λ ₯νλ μ λ¬΄κ° μμ΅λλ€. λλ, μΉ μ¬μ΄νΈμ μμ΄ν μ μΆκ°νκΈ° μν΄ μΌμΌμ΄ λ²νΌμ ν΄λ¦νλ©° μ μκ°μ 보λ΄λ μ 무λ μμμ΅λλ€. μ λ μ§μ μ΄ νλ‘κ·Έλλ¨ΈμΈμ§λΌ, λ€μμ μ§μΌλ³΄λ©΄μ λ§μ΄ μνκΉμνμ΅λλ€. μ§μμ μκ² λμΌλ©΄ 맀ν¬λ‘ νλ‘κ·Έλ¨μ΄λΌλ λ§λ€μ΄ 쀬μ ν λ° λ§μ΄μ£ . κ²°κ΅, μ΄λ² κΈ°νμ νλ‘κ·Έλ¨μ νλ λ§λ€μ΄ μ£Όλ©΄μ λ΄μ¬ λΏλ―ν΄νμ΅λλ€.
μ, κ·Έλμ μ΄λ² ν¬μ€ν μμλ .Net Selenium λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄μ©ν μΉ ν¬λ‘€λ§μ μκ°ν©λλ€.
μ λ λμμ κ΄ν μ λ°μ μΈ λ΄μ©μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
C#μμ μ λ λμ μ€λΉνκΈ°
본격μ μΌλ‘ C#μμ μ λ λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν΄ λ³΄κ² μ΅λλ€. C# WinForm νλ‘μ νΈλ₯Ό νλ μμ±νκ³ λꡬ > NuGet ν¨ν€μ§ κ΄λ¦¬μ > μ루μ μ© NuGet ν¨ν€μ§ κ΄λ¦¬ λ©λ΄λ₯Ό ν΄λ¦ν©λλ€.
κ²μ κ²°κ³Όμμ Selenium.WebDriver, Selenium.Support, Selenium.WebDriver.ChromeDriver, DotNetSeleniumExtras.WaitHelpers λ₯Ό μ ννκ³ μ€μΉν©λλ€. λ³Έλ¬Έμμλ 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;
//Selenium Library
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
namespace ExamSelenium
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
}
Seleniumμ μ΄μ©ν νλ‘κ·Έλλ° λ°©λ²
μ°μ ν¬λ‘¬μ μ¬μ©ν μ΄μ λ‘λ ν¬λ‘¬μ΄ κ°λ°μ λꡬ(F12)λ₯Ό μ§μνκΈ° λλ¬Έμ μ λ λμμ μ¬μ©νλλ° νΈλ¦¬ν©λλ€. μ λ λμ APIλ μΉ μ¬μ΄νΈμ HTML μ½λ(Tag, Class Name, ID, XPath λ±)λ₯Ό ν΅ν΄ μΉ μ¬μ΄νΈ μ μ΄ λλ ν¬λ‘€λ§μ΄ κ°λ₯ν©λλ€. μ’ λ μ½κ² μ€λͺ ν΄ λ³ΌκΉμ?
μ°μ ν¬λ‘¬μ μ€ννκ³ λ€μ΄λ²μ μ μν©λλ€. κ·Έλ¦¬κ³ F12λ₯Ό λλ₯΄λ©΄ μλ κ·Έλ¦Όκ³Ό κ°μ νλ©΄μ΄ λμ΅λλ€.
μ€λ₯Έμͺ½ νλ©΄μ μλ‘λ¬λ‘ν μ½λλ€μ΄ 보μ΄μ§μ? μ μ½λλ€μ HTML μ½λμ λλ€. λ§μ½ λ‘κ·ΈμΈ λ²νΌμ μ½λλ₯Ό μ»κ³ μΆλ€λ©΄ νμ΄ν λ²νΌμ ν΄λ¦ν ν λ‘κ·ΈμΈ λ²νΌ μμ κ°μ Έλ€ λκ³ ν΄λ¦ν©λλ€.
λ‘κ·ΈμΈ λ²νΌμ XPathλ₯Ό μ»κ³ μΆλ€λ©΄, μλμ κ°μ΄ λ§μ°μ€ μ°μΈ‘ λ©λ΄μ Copy XPath λ₯Ό μ νν©λλ€.
μ λ λμ APIλ₯Ό μ¬μ©νλ€ λ³΄λ©΄ XPathλ μ μ©νκ² λ§μ΄ μ¬μ©λλ κΌ κΈ°μ΅νμκΈ° λ°λλλ€. μ΄λ κ² μ»μ Tag, Class Name, XPath λ±μ μλμ κ°μ΄ μ¬μ©λ©λλ€. μΉ νμ΄μ§μ Elementλ₯Ό μ°ΎκΈ° μν API μ λλ€.
μ¬κΈ°κΉμ§ C#μμ μ λ λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©νκΈ° μν μ€λΉλ¨κ³λ₯Ό λ§μΉκ³ , μ΄ν ν¬μ€ν μ ν΅ν΄ μμ νλ‘κ·Έλ¨μ μμ±ν΄ λ³΄κ² μ΅λλ€.
'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.24