어제 올린 셀레니움 심화 # 14에서 잠깐 언급했듯, 출발날짜를 선택하는 부분에서 약간의 난이도가 필요했다.
이유는 [ 년 + 월 ] 을 찾은 후 [ 일 ] 을 찾아야 했기 때문에 본인이 가장 싫어하는 다중 For문의 늪에서 허우적 걸릴 수 밖에는 없다.
아래의 함수는 [출발년월] 과 [출발일]을 매개변수로 받아서 해당출발일을 클릭하는 함수이다.
그냥 딱봐도 질리는 맛이다.
Xpath로 하면 단 2줄이면 해결이 되기에 공유하려고 한다.
Console 창에서 Xpath를 사용하려면 $x를 붙혀서 selector 값을 붙혀주면된다.
본인이 선택한 날짜는 2023.05.03이었기 때문에 이를 Xpath로 했을 때 정확하게 값이 불러와진다면 실제 코딩에 입혀주기만 하면된다.
코드를 설명하면
1. 우선 div태그에 2023.05. 을 찾은 후
2. 부모요소중 div태그 중, div태그의 자손 태그인
3. b태그의 text값이 4 일인 값을 선택하는것이다.
(2) | div.class = sc-kDDrLX ctbFvd month | (1) |
div.class = sc-iqcoie dCaTmH [2023.05] | ||
(3) | ||
b.class=sc-crXcEl gjxYDG inner a_day [ 4] |
Set Nodes = Sel.FindElementByXPath("//div[text() ='" & FromMonthstr & "']/parent::div")
Nodes.FindElementByXPath("descendant::b[text() ='" & FromDaystr & "']").Click
단 2줄 .. 콘솔창 두번째 처럼 연이어서 작성하게 되면 단 한줄로 우리가 원하는 출발일을 선택할 수 있다.
$x("//div[text() = '2023.05.']/parent::div/descendant::b[text()='4']")[0].click();
오늘도 맛있는 코드 냠냠!!
'VBA > 엑사남_심화방' 카테고리의 다른 글
[심화방] VBA_심화_100제 #17 [ 당근마켓 조회하기] (0) | 2023.04.17 |
---|---|
[심화방] VBA_심화_100제 #16 [ 소득세계산기] (0) | 2023.04.04 |
[심화방] VBA_심화_100제 #15 [ 4대보험계산기] (0) | 2023.04.01 |
[심화방] VBA_심화_100제 #14 [ 셀레니움 네이버항공 조회] (0) | 2023.04.01 |
[심화방] VBA_심화_100제 #13 [ 셀레니움 네이버 로그인] (0) | 2023.03.20 |
댓글