Ir ao conteúdo
  • Cadastre-se

Nicolas Bruno

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. Entendi, 1000 desculpas! Não é gerado um erro em si, mas a automatização não está funcionando para o OneDrive, então com esse código ele está falhando na hr de realizar login e senha automático e já partir para planilha onde seria inseridos os dados. Quando executado aparece o app e em seguida a página para entrada no OneDrive, mas não sai de lá. Estou procurando o código correto para automatizar a entrada no OneDrive e já ir direto na planilha que ele deve receber os dados implantados no App.
  2. Pessoal, estou criando um app básico para empresa onde trabalho, mas estou com dificuldades de colocar os dados inseridos no app para o OneDrive mais especificamente no excel web, pois onde trabalho o SQL está restrito para uso de captação de dados desse tipo. Criei um código que de inicio deu certo, mas ainda não era o que eu queria, mas assim que inseri os campos para serem preenchido já não funcionava mais. A finalidade deste código seria para um apk em um celular ou tablet android para inserção de dados. Campos com url, nome entre outros foram trocados por segurança. Primeiro código que deu certo, mas o objetivo não estava finalizado. from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.uix.textinput import TextInput from kivy.uix.button import Button from kivy.uix.scrollview import ScrollView from kivy.uix.gridlayout import GridLayout from kivy.uix.popup import Popup from kivy.uix.spinner import Spinner from selenium import webdriver from datetime import datetime, timedelta import time class BaseDadosApp(App): def build(self): root_layout = BoxLayout(orientation='vertical', padding=10, spacing=10) # Título centralizado titulo_label = Label(text="Aplicativo", font_size=18, color=[1, 1, 1, 1], size_hint_y=None, height=40) root_layout.add_widget(titulo_label) # ScrollView para rolar a interface scroll_view = ScrollView() root_layout.add_widget(scroll_view) # Layout para os campos de entrada campos_layout = GridLayout(cols=2, spacing=10, size_hint_y=None, row_force_default=True, row_default_height=40) # Campos de entrada comuns self.campos = { "Data": Spinner(text=self.get_current_date(), values=self.generate_date_range(), size_hint_y=None, height=40), "CTC": TextInput(), "Inicio Desembarque": Button(text="Gerar Tempo", on_press=self.gerar_tempo, size_hint_y=None, height=40), "Final Desembarque": Button(text="Gerar Tempo", on_press=self.gerar_tempo, size_hint_y=None, height=40), "Coletor": TextInput(), "Critica Inicio": Button(text="Gerar Tempo", on_press=self.gerar_tempo, size_hint_y=None, height=40), "Critica Fim": Button(text="Gerar Tempo", on_press=self.gerar_tempo, size_hint_y=None, height=40), "Volumes Saída": TextInput(), "Volumes S/ Leitura": TextInput(), "Qtde CT-es": TextInput(), "Qtde NF": TextInput(), "Peso KG": TextInput(), "Peso Cubado": TextInput() } for label_text, input_widget in self.campos.items(): label = Label(text=label_text + ":", size_hint_y=None, height=40) campos_layout.add_widget(label) campos_layout.add_widget(input_widget) # Aplica cores específicas para os labels, texto e fundo if "CTC" in label_text or "Coletor" in label_text: label.color = [0.87, 0.44, 0, 1] # Cor #DE6F00 input_widget.background_color = [0.87, 0.44, 0, 1] # Cor de fundo #DE6F00 input_widget.foreground_color = [0.27, 0.27, 0.27, 1] # Cor do texto #474747 elif "Critica Inicio" in label_text or "Critica Fim" in label_text or "Volumes S/ Leitura" in label_text: label.color = [1, 0.21, 0.21, 1] # Cor #FF3737 input_widget.foreground_color = [0.27, 0.27, 0.27, 1] # Cor do texto #474747 # Layout dos campos de entrada ao ScrollView scroll_view.add_widget(campos_layout) # Botão para enviar dados submit_button = Button(text="Enviar Dados", on_press=self.enviar_dados, size_hint_y=None, height=40) root_layout.add_widget(submit_button) # Configurar o navegador Chrome self.browser = webdriver.Chrome() self.browser.get("https://onedrive.live.com") time.sleep(2) return root_layout def get_current_date(self): return datetime.now().strftime("%d/%m/%Y") def generate_date_range(self): current_date = datetime.now() end_date = current_date + timedelta(days=60) # Adiciona 60 dias à data atual date_range = [] while current_date <= end_date: date_range.append(current_date.strftime("%d/%m/%Y")) current_date += timedelta(days=1) return date_range def gerar_tempo(self, instance): # Atualizar o campo com a hora atual field_button = instance field_button.text = self.get_current_time() def get_current_time(self): return datetime.now().strftime("%H:%M:%S") def enviar_dados(self, instance): # Exibir mensagem de envio popup = Popup(title='Dados Enviados', content=Label(text='Os dados foram enviados com sucesso.'), size_hint=(None, None), size=(400, 200)) popup.open() # Limpar campos preenchidos for label_text, input_widget in self.campos.items(): if isinstance(input_widget, TextInput) or isinstance(input_widget, Spinner): input_widget.text = '' class DadosAppSelenium(BaseDadosApp): def mostrar_pop_up(self, instance): # Crie um pop-up com uma mensagem mensagem = "Dados enviados com sucesso!" popup = Popup(title='Status do Envio', content=Label(text=mensagem), size_hint=(None, None), size=(400, 200)) # Limpe os campos de entrada for input_widget in self.campos.values(): input_widget.text = "" # Abra o pop-up popup.open() if __name__ == '__main__': DadosAppSelenium().run() Resultado do código... Mas refiz o código para ele achar a planilha automaticamente dentro do OneDrive, dai já não estava funcionando corretamente e não estou conseguindo consertar. from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.uix.scrollview import ScrollView from kivy.uix.gridlayout import GridLayout from kivymd.uix.textfield import MDTextField from kivymd.uix.button import MDRaisedButton from selenium import webdriver from selenium.webdriver.common.by import By class DadosApp(App): def build(self): self.browser = webdriver.Chrome(executable_path="C:/webdriver/chromedriver.exe") root_layout = BoxLayout(orientation='vertical', padding=10, spacing=10) # Título centralizado titulo_label = Label(text="Empresa", font_size=18, color=[1, 1, 1, 1], size_hint_y=None, height=40) root_layout.add_widget(titulo_label) # ScrollView para rolar a interface scroll_view = ScrollView() root_layout.add_widget(scroll_view) # Layout para os campos de entrada campos_layout = GridLayout(cols=2, spacing=10, size_hint_y=None, row_force_default=True, row_default_height=40) # Campos de entrada self.campos = { "CTC": MDTextField(), "Data": MDTextField(), "Coletor": MDTextField(), "Inicio Desembarque": MDTextField(), "Final Desembarque": MDTextField(), "Critica Inicio": MDTextField(), "Critica Fim": MDTextField(), "Volumes Saída": MDTextField(), "Volumes S/ Leitura": MDTextField(), "Qtde CT-es": MDTextField(), "Qtde NF": MDTextField(), "Peso KG": MDTextField(), "Peso Cubado": MDTextField() } for label_text, input_widget in self.campos.items(): label = Label(text=label_text + ":", color=[1, 1, 1, 1], size_hint_y=None, height=40) campos_layout.add_widget(label) campos_layout.add_widget(input_widget) # Layout dos campos de entrada ao ScrollView scroll_view.add_widget(campos_layout) # Botão para enviar dados submit_button = MDRaisedButton(text="Enviar Dados", on_press=self.enviar_dados, size_hint_y=None, height=40) root_layout.add_widget(submit_button) return root_layout def realizar_login_onedrive(self, username, password): self.browser.get("https://onedrive.live.com/login/") # Preencher os campos de login e senha e fazer login def navegar_para_planilha(self): # Vá para a URL da sua planilha self.browser.get("https://onedrive.live.com/login/") def preencher_planilha(self): # Exemplo: data_input = self.browser.find_element(By.ID) data_input.send_keys() def enviar_dados(self, instance): # Realize o login no OneDrive username = "******************" password = "*********" self.realizar_login_onedrive(username, password) # Navegue até a planilha Desembarque Python self.navegar_para_planilha() # Preencha a planilha self.preencher_planilha() # Feche o navegador após a conclusão self.browser.quit() if __name__ == '__main__': DadosApp().run() Quem puder me ajudar agradeço muito!!!

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!