[μ λ λμ/Selenium, C#] λ¬λ ₯(Date Picker) λ μ§ μ ννκΈ°(μμ ν¬ν¨)
μ λ λμμ κ΄ν μ λ°μ μΈ λ΄μ©μ μλ λ§ν¬λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
[μ λ λμ/Selenium, C#] C#μμ μ λ λμμ μ¬μ©νλ λ°©λ² μ΄μ 리
μκ°
λ³Έ ν¬μ€ν μμλ μΉ νμ΄μ§μ λ¬λ ₯(Date Picker) μμλ₯Ό μ°Ύμ νΉμ λ μ§λ₯Ό μ ννλ λ°©λ²μ μκ°ν©λλ€.
λ¬λ ₯(Date Picker) λμ μ΄ν΄νκΈ°
λ¬λ ₯ UI μ»΄ν¬λνΈλ μ¬λ¬ μ’
λ₯κ° μμ΅λλ€. κ·Έ μ€ λ μ§λ₯Ό λ§μ°μ€λ‘ ν΄λ¦νλ Date Picker
νμ
μΌλ‘ λΆμμ νκ² μ΅λλ€.
λ³Έλ¬Έμ μμ λ Date Picker
λ₯Ό μ 곡νλ jQuery UI
μ¬μ΄νΈμμ μ§ννκ² μ΅λλ€.
λ§ν¬: https://jqueryui.com/datepicker/
μ΄ λ¬λ ₯μ ν
μ€νΈ λ°μ€
λ₯Ό ν΄λ¦ν΄μΌ λ¬λ ₯
μ΄ νμλκ³ , λ μ§λ₯Ό μ ννλ©΄ μ
λ ₯μ΄ λ©λλ€.
κ°λ°μ λκ΅¬λ‘ λ¬λ ₯(Date Picker) λΆμνκΈ°
λ¨Όμ , λ¬λ ₯
μ νμνκΈ° μν΄ ν
μ€νΈ λ°μ€
μ μμλΆν° νμΈν©λλ€.
ν
μ€νΈ λ°μ€
λ₯Ό μ
λ ₯νλ©΄ λ¬λ ₯
μ΄ νμλ©λλ€. λ§μ°¬κ°μ§λ‘ λ¬λ ₯
μ μμλ₯Ό νμΈν©λλ€.
λ¬λ ₯
μλ μΌμͺ½, μ€λ₯Έμͺ½ νμ΄ν λ²νΌ
κ³Ό λ μ§ μ νμ΄ κ°λ₯ν ν
μ΄λΈ
μ΄ μ‘΄μ¬ν©λλ€. μ¦, λ κ°μ λ²νΌ μμ
μ ν΄λ¦ κ°λ₯ν ν
μ΄λΈ μμ
κ° μλ€λ μλ―Έμ
λλ€.
λ°λΌ νκΈ°
ν΄λΉ μ¬μ΄νΈμ ν
μ€νΈ λ°μ€ λ° λ¬λ ₯μ iFrame
μ μ‘΄μ¬ν©λλ€. λ°λΌμ iFrame
μ ν ν μμμ μ κ·Όν΄μΌ μλ¬κ° λ°μνμ§ μμ΅λλ€. μμΈν λ΄μ©μ μμ μ½λλ₯Ό μ°Έκ³ νμΈμ.
ν
μ€νΈ λ°μ€μ XPath
λ λ€μκ³Ό κ°μ΅λλ€.
//*[@id="datepicker"]
ν μ€νΈ λ°μ€λ₯Ό ν΄λ¦νλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
var textBox = _driver.FindElementByXPath("//*[@id='datepicker']");
textBox.Click();
κ·Έλ¦¬κ³ λ¬λ ₯κ³Ό μΌμͺ½, μ€λ₯Έμͺ½ νμ΄ν λ²νΌμ XPathλ λ€μκ³Ό κ°μ΅λλ€.
//*[@id="ui-datepicker-div"]
//*[@id="ui-datepicker-div"]/div/a[1]
//*[@id="ui-datepicker-div"]/div/a[2]
λ¬λ ₯ μμλ₯Ό μ°Ύκ³ λ²νΌμ ν΄λ¦νλ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
//μ§λ λ¬ μ΄λνκΈ°.
var leftButton = _driver.FindElementByXPath("//*[@id='ui-datepicker-div']/div/a[1]");
leftButton.Click();
//λ€μ λ¬ μ΄λνκΈ°.
var rightButton = _driver.FindElementByXPath("//*[@id='ui-datepicker-div']/div/a[2]");
rightButton.Click();
//a Tagλ‘ λ²νΌ μ κ·ΌνκΈ°.
var buttons = datePicker.FindElements(By.TagName("a"));
buttons[0].Click();
buttons[1].Click();
μ΄λ° λ°©λ²λ μκ³ , λ¬λ ₯μμ a Tag
λ₯Ό μ°Ύμμ ν΄λ¦νλ λ°©λ²λ μμ΅λλ€. ꡬννκΈ° λλ¦μ
λλ€.
λ€μμ λ μ§λ₯Ό μ ννλ λ°©λ²μ λλ€. λ μ§λ ν μ΄λΈλ‘ ꡬμ±λμ΄μκ³ , μ΄μ ν¬μ€ν μμ μ€λͺ ν ν μ΄λΈ μμ μ κ·Ό λ°©λ²κ³Ό λμΌν©λλ€.
[μ λ λμ/Selenium, C#] ν μ΄λΈμ μ λ°μ΄ν° μ·¨λνκΈ° (μμ ν¬ν¨)
var table = datePicker.FindElement(By.TagName("table"));
var tbody = table.FindElement(By.TagName("tbody"));
var trs = tbody.FindElements(By.TagName("tr"));
foreach(IWebElement tr in trs)
{
var tds = tr.FindElements(By.TagName("td"));
foreach(var td in tds)
{
//λ μ§ λΉκ΅ ν ν΄λ¦.
if (td.Text == "3")
{
td.Click();
}
}
}
μ μ½λλ₯Ό μ€ννλ©΄ μλμ κ°μ κ²°κ³Όλ₯Ό μ»μ μ μμ΅λλ€.
λ§μ°¬κ°μ§λ‘ μμ μ½λλ₯Ό 첨λΆνμ΅λλ€. μ°Έκ³ λ‘ μ λ‘λ μ©λ λ¬Έμ λ‘ ν¨ν€μ§ νμΌμ μ κ±°νμ΅λλ€. Seleniumμ μ¬μ©νκΈ° μν ν¨ν€μ§λ₯Ό μ€μΉν ν λμν΄λ³΄μΈμ.
'Programming > Selenium' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λκΈ
μ΄ κΈ κ³΅μ νκΈ°
-
ꡬλ
νκΈ°
ꡬλ νκΈ°
-
μΉ΄μΉ΄μ€ν‘
μΉ΄μΉ΄μ€ν‘
-
λΌμΈ
λΌμΈ
-
νΈμν°
νΈμν°
-
Facebook
Facebook
-
μΉ΄μΉ΄μ€μ€ν 리
μΉ΄μΉ΄μ€μ€ν 리
-
λ°΄λ
λ°΄λ
-
λ€μ΄λ² λΈλ‘κ·Έ
λ€μ΄λ² λΈλ‘κ·Έ
-
Pocket
Pocket
-
Evernote
Evernote
λ€λ₯Έ κΈ
-
[μ λ λμ/Selenium, C#] headless μ΅μ μμ νμΌ λ€μ΄λ‘λ κ°λ₯νλλ‘ μ€μ νκΈ°
[μ λ λμ/Selenium, C#] headless μ΅μ μμ νμΌ λ€μ΄λ‘λ κ°λ₯νλλ‘ μ€μ νκΈ°
2020.08.28 -
[μ λ λμ/Selenium, C#] iFrame νκ·Έ λ° λ©μΈ μλμ°λ‘ μ ννκΈ°
[μ λ λμ/Selenium, C#] iFrame νκ·Έ λ° λ©μΈ μλμ°λ‘ μ ννκΈ°
2020.08.27 -
[μ λ λμ/Selenium, C#] ν μ΄λΈμ μ λ°μ΄ν° μ·¨λνκΈ° (μμ ν¬ν¨)
[μ λ λμ/Selenium, C#] ν μ΄λΈμ μ λ°μ΄ν° μ·¨λνκΈ° (μμ ν¬ν¨)
2020.08.21 -
[μ λ λμ/Selenium, C#] ν μ€νΈ λ°μ€ μ§μ°κΈ° (μμ ν¬ν¨)
[μ λ λμ/Selenium, C#] ν μ€νΈ λ°μ€ μ§μ°κΈ° (μμ ν¬ν¨)
2020.08.09