Correção de Código

1. Correção de Código

Laion Leal
laionleal123

(usa Debian)

Enviado em 02/01/2019 - 21:36h

Boa noite, alguém poderia me ajudar na correção deste código?
O objetivo deste trecho código é automatizar o login no instagram, mas quando o executo o mesmo da erro e não sei o que pode ser pois não tenho muito conhecimento em python... Se alguém puder me ajudar a corrigir este código desde já sou grato, pois não sei onde estou errando.


#!/usr/bin/python
#_*_coding: UTF-8_*_
import getpass
import time
import os
import sys
from selenium import *
from selenium.webdriver.common.keys import Keys
from selenium import webdriver

os.system('clear')
print('Certo, agora preciso de alguns dados para efetuar o seu login no Instagram!')

username_insta = raw_input('\nDigite seu nome de usuario do Instagram: ')
password_insta = getpass.getpass('Digite sua senha do Instagram: ')
os.system('clear')

print('OK!\n\nPor favor aguarde ...')

time.sleep(2)

os.system('clear')
firefox = webdriver.Firefox()
firefox.execute_script("window.open('https://www.instagram.com/accounts/login')")

time.sleep(5)

username_input = firefox.find_element_by_css_selector("div.-MzZI:nth-child(1) > div:nth-child(1) > div:nth-child(1) > label:nth-child(1)")
username_input.send_keys(username_insta)
# Enter password
password_input = firefox.find_element_by_css_selector("div.-MzZI:nth-child(2) > div:nth-child(1) > div:nth-child(1) > label:nth-child(1)")
password_input.send_keys(password_insta)
# Login
password_input.submit()



  


2. Re: Correção de Código

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 03/01/2019 - 12:14h

Por curiosidade, qual a finalidade do programa?
E porquê usar Python 2?

Ficaria mais fácil se colocasse o erro que dá, mas vamos tentar:
Não teria que pegar o elemento SUBMIT antes e depois usar a função .submit() nele em vez de usar no input?

Abraço


3. Python

Laion Leal
laionleal123

(usa Debian)

Enviado em 03/01/2019 - 21:43h

Lisandro escreveu:

Por curiosidade, qual a finalidade do programa?
E porquê usar Python 2?

Ficaria mais fácil se colocasse o erro que dá, mas vamos tentar:
Não teria que pegar o elemento SUBMIT antes e depois usar a função .submit() nele em vez de usar no input?

Abraço


Boa noite Lisandro, o código é um trecho para um script, com a finalidade de automatizar as tarefas de curtir e seguir com o site instelikes.com.br . Escolhi o python por ser uma linguagem mais simples, não tenho muito conhecimento em programação e acredito que o python seja a melhor opção por ser uma linguagem simples e poderosa.

Segue abaixo o código completo que eu fiz até o momento.


#!/usr/bin/python
#_*_coding: UTF-8_*_
import getpass
import time
import os
import sys
from selenium import *
from selenium.webdriver.common.keys import Keys
from selenium import webdriver

os.system('clear')

print('Bem-vindo ao Automator Likes, primeiramente preciso de alguns dados para efetuar\no seu login no Instelikes!')

email = raw_input('\nDigite seu email: ')
password = getpass.getpass('Digite sua senha: ')

os.system('clear')

print('Certo, agora preciso de alguns dados para efetuar o seu login no Instagram!')

username_insta = raw_input('\nDigite seu nome de usuario do Instagram: ')
password_insta = getpass.getpass('Digite sua senha do Instagram: ')

os.system('clear')

print('OK!\n\nPor favor aguarde ...')

time.sleep(2)

os.system('clear')

firefox = webdriver.Firefox()

firefox.get('https://instelikes.com.br/login.php')

insert_email = firefox.find_element_by_name('Email')
insert_email.send_keys(email)

insert_password = firefox.find_element_by_name('Senha')
insert_password.send_keys(password)
insert_password.send_keys(Keys.ENTER)

time.sleep(10)

enviar = firefox.find_element_by_link_text('Enviar')
enviar.click()

firefox.execute_script("window.open('https://www.instagram.com/accounts/login')")

time.sleep(5)

#ATÉ ESTA PARTE O CÓDIGO FUNCIONA COMO ESPERADO

#NA CONTINUAÇÃO ABAIXO O CÓDIGO DA ERRO

username_input = firefox.find_element_by_id('f3b33c2518771a6')
username_input.send_keys(username_insta)
# Enter password
password_input = firefox.find_element_by_id('f37efcd9387c724')
password_input.send_keys(password_insta)
# Login
password_input.submit()

#O CÓDIGO ABAIXO DEIXEI COMO COMENTÁRIO POIS EU ESTAVA TESTANDO O TRECHO DE CÓDIGO QUE ESTÁ COM ERRO

'''
insta_username = firefox.find_element_by_xpath("//input[@name='username']")
insta_username.send_keys(username_insta)

insta_password = firefox.find_element_by_name('Senha')
insta_password.send_keys(password_insta)

enter_my_insta = fiefox.find_element_by_link_text('Entrar')
enter_my_insta.click()

time.sleep(10)

firefox.close()

get_coin = firefox.find_element_by_name('Ganhar moedas!')
get_coin.click()

like_it = firefox.find_element_by_name('Curtir')
like_it.click()

follow_you = firefox.find_element_by_link_text('Seguir')
follow_you.click()
'''


Segue abaixo o retorno do erro no terminal.


Traceback (most recent call last):
File "testando.py", line 57, in <module>
username_input = firefox.find_element_by_id('f3b33c2518771a6')
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 978, in find_element
'value': value})['value']
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="f3b33c2518771a6"]


Se você puder me ajudar sou grato! Abraço.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts