작성
·
167
0
강사님 매번 강의로 도움많이받고있습니다 감사합니다.
개인적으로 일전에 구글을 예를 들어 다양한 키워드에 따라 생성 텝메뉴들이 달라져서 고민을 많이하던때가있었는데
'View탭 클릭하여 페이지넘어가기'강의와 같이 xpath 지정하였을때 '//*[text()="VIEW"]' 입력하면 되는것일까요?
음 현재 네이버가 뷰 서비스를 폐지했는데 만약 블로그를 클릭한다면 '//*[text()="블로그"]' 를 입력하면 클릭이되나요?안되서여ㅜㅜ혹시 도움이될만한 고견주시면 감사드리겠습니다.
답변 1
1
뷰 탭이 없어졌군요..
일단,
driver.find_element(By.XPATH, '//*[text()="블로그"]').click()
이렇게 하면 화면상의 첫번째 '블로그' 텍스트를 가진 요소를 찾아서 클릭을 하게 되는데
이게 우리가 원하는 블로그 탭의 요소가 아닙니다.
print(len(driver.find_elements(By.XPATH, '//*[text()="블로그"]')))
이렇게 작성해서 몇개인지 출력해보면 1개가 아닙니다.
지금 현재 4개가 나오네요.
blogs = driver.find_elements(By.XPATH, '//*[text()="블로그"]')
for blog in blogs:
print(blog.get_attribute("outerHTML"))
이렇게 해보면 '블로그' 라는 텍스트를 가진 요소를 전부 찾아서 그 요소의 html을 출력합니다.
여기에서 확인해보면 지금 현재 블로그 탭으로 이동하기 위해서 클릭해야 하는 요소는 3번째로 출력됩니다.
인덱스로는 [2] 이렇게 되는거죠.
그렇다는건
driver.find_elements(By.XPATH, '//*[text()="블로그"]')[2].click()
이렇게 해야 클릭이 됩니다.
그리고 검색은 성공을 하셨으니 지금 이 질문을 올리셨을 거라고 생각되지만,
혹시나 하는 마음에 한가지 더 말씀드리자면,
검색 버튼을 클릭하는 태그도 바뀌었네요.
driver.find_element(By.CSS_SELECTOR, "#search_btn").click() 이거 대신
driver.find_element(By.CSS_SELECTOR, ".btn_search").click() 이렇게 넣어야 합니다.
감사합니다 강사님