본문 바로가기
파이썬

파이썬 find_element_by_class_name 버튼을 클릭하면 작동하지 않습니다 .python selenium webdriver가 작동하지 않습니다.

by º기록 2020. 10. 23.
반응형


기본적으로 스크립트가 각 제안 된 프로필 옆에있는 "연결"단추를 찾고 단추를 클릭 한 다음 오류가 발생할 때까지 반복하여 "연결"단추를 더로드하여 다시 반복하도록합니다.

모든 연결 버튼이 동일한 클래스를 갖기 때문에 버튼 요소를 찾는 가장 좋은 방법은 find_element_by_class_name ()입니다. 또한 CSS와 Xpath를 사용하여 요소를 찾으려고 시도했지만 성공하지 못했습니다.

문제 : 스크립트가 첫 번째 연결 버튼을 클릭 할 수 있지만 그 후에는 클릭 할 수 없습니다. 구현에 대한 많은 아이디어를 시도했지만 (Xpath, CSS로 찾기, 버튼 목록을 사용하여 클릭) 작동하지 않는 것 같습니다. 아래는 스크립트의 관련 부분입니다.

while True:
    try:
        driver.find_element_by_class_name("mn-person-card__person-btn-ext.button-secondary-medium").click()
        time.sleep(1)
    except:
        pass
        print("trying to scroll")
        driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(1) 

어떤 아이디어? 나에게는 코드가 작동해야하는 것처럼 보이고 성공을 방해하는 다른 무언가가있는 것처럼 보입니다. 아마도 버그 또는 유사합니다. 내가이 모든 것에 다소 익숙하지 않다는 것을 언급 할 수 있으며, 브라우저를 조작하기 위해 만들려고하는 첫 번째 스크립트입니다.


미리 감사드립니다!

 

해결 방법

 

동일한 클래스를 가진 모든 요소를 ​​찾으려면 find_elements 를 사용해야합니다. 모든 요소를 ​​얻으려면 이것을 시도하십시오.

elements = driver.find_elements_by_class_name("mn-person-card__person-btn-ext.button-secondary-medium")

그런 다음 for 루프를 사용하여 각각을 클릭하십시오. 예를 들면 :

for e in elements:
    e.click()

 

참조 페이지 https://stackoverflow.com/questions/43021434

 

 

반응형

댓글