[μ λ λμ/Selenium, C#] C#μμ Seleniumμ μ΄μ©ν λ€μ΄λ² μλ λ‘κ·ΈμΈ νλ‘κ·Έλ¨ λ§λ€κΈ° (μμ ν¬ν¨)
μ λ λμμ κ΄ν μ λ°μ μΈ λ΄μ©μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
μ΄λ² ν¬μ€ν μμλ μ€μ μ λ λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ»κ² μ¬μ©νλμ§ μμλ₯Ό ν΅ν΄ μμλ³΄κ² μ΅λλ€.
λ€μ΄λ² μλ λ‘κ·ΈμΈ λ§λ€κΈ°
λ€μ΄λ² μλ λ‘κ·ΈμΈ νλ‘κ·Έλ¨μ μμλ‘ λ§λ€μ΄ λ³΄κ² μ΅λλ€. μ°μ , μ¬λμ΄ μμ νλ€λ©΄ μλμ κ°μ μμμΌλ‘ μνν κ²μ λλ€.
β λ€μ΄λ²μ μ μ.
β‘ λ‘κ·ΈμΈ λ²νΌ ν΄λ¦.
β’ μμ΄λ λ° λΉλ°λ²νΈ μ λ ₯.
β£ λ‘κ·ΈμΈ λ²νΌ ν΄λ¦.
λ§μ°¬κ°μ§λ‘ νλ‘κ·Έλλ°μ νλ €λ©΄ λμΌν μ μ°¨μ 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