Olá, pessoal. Estou criando um aplicação em python usando a lib selenium que acessa sites automaticamente e faz login neles. Atualmente os sites, login e senha estão especificados no código.
É possível listar os sites em um arquivo json? Mas o login e senha são pedidos ao usuário é possível colocar login e senha no json sem cair no erro do hard coded?
Sim, é absolutamente possível armazenar a lista de sítios Web num ficheiro JSON e solicitar as credenciais de início de sessão ao utilizador de forma dinâmica em tempo de execução.
Exemplo:
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
def load_websites():
with open('sites.json', 'r') as file:
data = json.load(file)
return data['websites']
def get_credentials():
username = input("Enter your username: ")
password = input("Enter your password: ")
return username, password
def automate_login(site, username, password):
driver = webdriver.Chrome() # Ensure you have the right driver installed
driver.get(site['url'])
driver.find_element(By.NAME, "username").send_keys(username)
driver.find_element(By.NAME, "password").send_keys(password)
driver.find_element(By.NAME, "submit").click()
def main():
websites = load_websites()
print("Available websites:")
for idx, site in enumerate(websites, 1):
print(f"{idx}. {site['name']}")
choice = int(input("Select a website to login to (enter number): ")) - 1
selected_site = websites[choice]
username, password = get_credentials()
automate_login(selected_site, username, password)
if __name__ == "__main__":
main()