본문 바로가기
VBA/엑사남_심화방

[심화방] VBA_심화_100제 #14-1 [ 셀레니움 네이버항공 조회]

by 일등미노왕국 2023. 4. 2.

어제 올린 셀레니움 심화 # 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();

네이버여행(수정).xlsm
0.19MB

오늘도 맛있는 코드 냠냠!!

댓글