[셀레니움] 링크 선택을 어떻게 하는지 모르겠어요.

조회수 1014회
from selenium import webdriver
path= "C:/Users\KIM/Downloads/chromedriver.exe"
driver = webdriver.Chrome(path)
driver.get('https://komyojikyozo.web.fc2.com')
# 프레임 찾기 
iframes = driver.find_elements_by_css_selector('frame')
for iframe in iframes:
    print(iframe.get_attribute('name'))
# 프레임으로 전환
driver.switch_to.frame('menu')

#? 왜 프레임 전환을 했는데 해당 페이지가 나오지 않는 걸까?
element = driver.find_element_by_css_selector("a").get_attribute('href')

이미지

저 링크를 셀레니움으로 클릭하고 싶은데요. 문법 실수인지 자꾸 오류가 납니다. a 태그에 href = "javascript_:void(0)" 인 거를 선택하려면 어떻게 해야 할까요?

<a href="javascript_:void(0)" onclick="changeVis('dnskvmenu', 'dnskvtree')">「戒蘊篇」</a>
  • (•́ ✖ •̀)
    알 수 없는 사용자

1 답변

  • 이렇게 해보세요.

    
    a = 'body > table:nth-child(5) > tbody > tr:nth-child(2) > td:nth-child(1) > div > a'
    element = driver.find_element_by_css_selector(a).get_attribute('href')
    
    • 답변 감사합니다. element.click() AttributeError: 'str' object has no attribute 'click'. 이렇게는 할 수 없는 것 같은데요. 저 코드를 해도 링크 클릭을 할 수 있는 건가요? 알 수 없는 사용자 2021.9.24 09:10
    • 클릭을 하려면 .get_attribute('href')을 지우고 해보세요. 초보자 2021.9.24 09:26
    • 성공했습니다. 선생님 감사합니다. 꼭 답변 안해주셔도 되는데요. driver.find_element_by_css_selector(a).click() driver.implicitly_wait(20) # seconds b = '#dnskvtree > table:nth-child(1) > tbody > tr > td:nth-child(1) > div > a' driver.find_element_by_css_selector(b).click() 선생님 코드랑 똑같이 해서 css 카피한 거 붙였는데 두번째는 클릭을 안하네요. 제가 문법이 틀린 건가요? 알 수 없는 사용자 2021.9.24 12:12
    • 앗 선생님 해결했습니다. 한번 클릭이 아니라 두번 클릭해야 나오는 거였네요. 다시 한번 감사드립니다. 알 수 없는 사용자 2021.9.24 12:21

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)