반응형

드롭다운형태로 고르는 방식으로 li class로 구성

셀레니움으로 드롭다운을 자동을 선택해서 입력이 되게 만들려고 했으나 li class로 구성되어 있어서 기존 id 방식으로 했더니 인식이 되지 않았다. 그래서 다른 방법으로 선택하게 하고,,, 조금 야매를 써서 구현하긴 했다. 아래는 그 구현 코드 한 줄이다.

driver.find_element_by_css_selector(f'#dptRsStnCd-menu > li:nth-child({dpt_loc.get(dpt)})').click()

위소스코드처럼 css_Selector를 가지고 인릭하게 했다. 그리고 ui-id-{}로 선택을해야하는데, 이게 어떻게 하면 효율적으로 코딩을 할까 고민을 했는데,,, 나의 몽총한 머리로써는 별의 별걸 고민해봐도 생각이 안나가지고 한계여서 무식한 방법을 적용하기로 했다.

 

바로바로! 파이썬 딕셔너리를 활용해서 값을 입력하여 보내기로 했다.

 

ui-id-"숫자"에서 숫자부분은 특정 글과 매칭이 되기떄문에 사용자입장에서 입력할때 그 특정 글이 있다면 "숫자" 밸류 값을 가지고 와서 입력해버리는 것이다.

 

이러면 나중에 이 값이 바뀌면 소스코드를 수정해주어야 하는데,,, 그건 미래의 나에게 맡긴다!

 

그래서 딕셔너리로 특정 값을 가지고 오기때문에, 스트링 안에 또 변수를 넣어야 할 필요가 있었다.

 

css_selector에서 f가 들어간 이유는 안에 변수인 {dpt_loc.get(dpt)}를 활용하기 위함이다.
(Python3 에서는 f를 통해서 이렇게 만들 수 있다고한다. .format()으로도 해봤는데 그건 인식이 안되더라)

 

위의 소스코드로 각자 입맛에 맞게 수정하면 될 것 같다.

 

이상 개발 무지랭이가...

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기