2017-11-12 2 views
1

작은 스크립트를 작성하고 문제가 발생했습니다. 목록을 아래로 스크롤하려고하지만 제대로 작동하지 않습니다. 스크롤 목록 셀레늄 (Python)

Screen of the list Screen of the html code

WebDriverWait(driver, 20).until(lambda x: x.find_element_by_xpath("//li[@class = '_6e4x5']")) 
난 정말 당신의 도움이 필요합니다 : 여기에 내 코드

def get_followers(self): 
      try: 
       self.driver.find_elements_by_css_selector('a._t98z6')[0].click() 
      except Exception as e: 
       print("Sorry, i don't have access to your followers: {0}".format(e)) 
      else: 
       followers = [] 
       while True: 
       self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") 
       try: 
        WebDriverWait(driver, 20).until(lambda x: x.find_element_by_css_selector('li._6e4x5')) #It doesn't find element. 
       except: 
        break 
      followers = self.driver.find_elements_by_css_selector("a._2g7d5.notranslate._o5iw8") 
return followers 

나는 또한이 같은 XPath를 사용하려고합니다. 고마워요

+0

목록의 모양을 알 수있는 스크린 샷과 a._t98z6 및 li._6e4x5 요소의 html 코드를 제공하십시오. 클래스 (_t98z6 및 _6e4x5)는 동적 인 값처럼 보이며 매번 페이지에 들어갈 때 변경되지 않는다고 확신합니까? – yong

+0

클래스 _t98z6은 동적 값이 아닙니다. – Kolya

+0

스크린 샷을 업로드하는 것을 잊었습니까? – yong

답변

0

팔로워 목록에 팔로워 목록이 표시되고 팝업에는 자체 스크롤 막대가 있습니다.
코드 :

self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight)") 

팝업의 스크롤 막대를 제어하지만, 전체 페이지의 스크롤 막대를 제어 할 수 없습니다.

코드를 삭제하십시오. 추가 팔로어의 이름 만 가져오고 싶다면 팝업의 맨 아래로 스크롤 할 필요는 없지만 팝에서는 보이지 않는 팔로워를 클릭하려는 경우 -up, 팝업 막대를 아래로 스크롤해야합니다.

def get_followers(self): 
     followers = [] 
     try: 
      self.driver.find_elements_by_css_selector('a._t98z6')[0].click() 
      // I guess above click will make the follower list pop-up display out 
      except Exception as e: 
       print("Sorry, i don't have access to your followers: {0}".format(e)) 
      else: 
      followers = self.driver.find_elements_by_css_selector("li._6e4x5 a.notranslate") 
     return followers 
+0

답변 해 주셔서 감사합니다. 내 목표는 모든 추종자들의 이름을 얻는 것입니다. 나는 followers = self.driver.find_elements_by_css_selector ("li._6e4x5 a.notranslate")와 같이 작성할 수 없다. 왜냐하면 팔로워 10 명만 표시하기 때문이다. 그래서 그들 모두를 얻으려면 내가 페이지 아래로 스크롤해야합니다 – Kolya

+0

오직 10 명의 팔로어 만 볼 수 있습니다 팝업이 나오면 모든 팔로어를로드하지 않는 것은 아닙니다. 당신은 크롬에서 귀하의 페이지를 열고 devtool을 열고 요소 탭에서 10 개 이상의 요소를 찾으면 li._6e4x5를 시도해보십시오. 내 추측이 정확하므로 아래로 스크롤 할 필요가 없습니다. 스크롤 막대를 움직일 때 개발자가 팔로워를 동적으로로드하는 코드를 작성한 경우 웹 개발자가 팔로어 목록을 구현 한 방법을 잘 모르겠습니다.이 경우 스크롤해야합니다. 하지만 개발자가 구현하지 않는 것 같아요. – yong

관련 문제