Jump to content

Como identificar a classe correta para rolar o modal de seguidores do Instagram usando Selenium em Python?


monte_software

Postagens Recomendadas

Amigos, criei uma automação para seguir seguidores de alguma conta do Instagram.

O script está funcionando.

Mas após seguir várias contas, preciso rolar a tela do modal.

Meu script em Python usa o Selenium.

Já tenho o código que faz rolar a página, porém não consigo identificar a classe.

Já testei algumas classes, mas ela fez rolar a página de trás do modal, não o modal.

Segue o meu código para rolar a página:

try:
    popup = driver.find_element(By.CLASS_NAME, 'x1n2onr6')
except:
    print("'FAILED TO FIND POPUP ELEMENT'")
else:
    print("'Popup element is found'")
    
time.sleep(10)

for run in range(100):
    print("scrolling down")
    driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', popup)
    time.sleep(2)

Grato se alguém puder ajudar. Coloco o código completo a disposição.

Editado por Casa do Desenvolvedor
Inserção do código na caixa de 'code'.
  • Curtir 1
Link to comment
Compartilhe em outros sites

@monte_softwareÉ preciso ver se este modal não esta em um outro frame da página, se estiver tem que fazer a troca Ex:   driver.switch_to.frame(driver.find_element(by=By.XPATH, value=iframe))

  driver.switch_to.frame(driver.find_element(by=By.XPATH, value=iframe))

Pode tentar:

try:
    # Identificar a div rolável dentro do modal (essa geralmente é a div com a lista de seguidores)
    scrollable_div = driver.find_element(By.XPATH, "//div[@class='x1n2onr6']//div[@role='dialog']//ul")
except Exception as e:
    print("Failed to find the scrollable element: ", e)
else:
    print("Scrollable element found")
    time.sleep(5)  # Ajuste o tempo de espera conforme necessário

    # Realizar a rolagem
    for run in range(100):  # Ajuste o número de rolagens conforme necessário
        print("Scrolling down")
        driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scrollable_div)
        time.sleep(2)  # Ajuste o tempo de espera entre as rolagens

Ou tentar:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

actions = ActionChains(driver)
for _ in range(50):  # Ajuste o número de rolagens conforme necessário
    actions.send_keys(Keys.PAGE_DOWN).perform()
    time.sleep(2)

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

10 horas atrás, Ryan Zimerman Leite disse:

@monte_softwareÉ preciso ver se este modal não esta em um outro frame da página, se estiver tem que fazer a troca Ex:   driver.switch_to.frame(driver.find_element(by=By.XPATH, value=iframe))

  driver.switch_to.frame(driver.find_element(by=By.XPATH, value=iframe))

Pode tentar:

try:
    # Identificar a div rolável dentro do modal (essa geralmente é a div com a lista de seguidores)
    scrollable_div = driver.find_element(By.XPATH, "//div[@class='x1n2onr6']//div[@role='dialog']//ul")
except Exception as e:
    print("Failed to find the scrollable element: ", e)
else:
    print("Scrollable element found")
    time.sleep(5)  # Ajuste o tempo de espera conforme necessário

    # Realizar a rolagem
    for run in range(100):  # Ajuste o número de rolagens conforme necessário
        print("Scrolling down")
        driver.execute_script('arguments[0].scrollTop = arguments[0].scrollHeight', scrollable_div)
        time.sleep(2)  # Ajuste o tempo de espera entre as rolagens

Ou tentar:

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

actions = ActionChains(driver)
for _ in range(50):  # Ajuste o número de rolagens conforme necessário
    actions.send_keys(Keys.PAGE_DOWN).perform()
    time.sleep(2)

 

Obrigado pelas dicas amigo. Mas não funcionou.

  • Triste 1
Link to comment
Compartilhe em outros sites

  • Casa do Desenvolvedor mudou o título para Como identificar a classe correta para rolar o modal de seguidores do Instagram usando Selenium em Python?

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...