Best Python code snippet using SeleniumBase
orator_main_002.py
Source:orator_main_002.py
1# -*- ISO-8859-1 -*-2#3# file: orator_main_002.py4#5# Created by Cleber Almeida Pereira6# e-mail: cleber.ap.desenvolvedor@gmail.com7#8# programming language: Python v3.7.39#10"""11Utilizando Query Builder do Orator12Fonte: https://orator-orm.com/docs/0.9/query_builder.html13A tradução de Query Builder do inglês para o português é "construtor de consulta de banco de dados".14Este construtor disponibiliza uma maneiro mais fácil para criar e executar consultas de banco de dados.15O banco de dados utilizado ainda possui uma única tabela 'person' na qual foi adicionada mais um campo:16- age INTEGER17Etapas desenvolvidas no algoritmo:181º. importamos a biblioteca que realiza o gerenciamento;192º. criamos a descrição da configuração de conexão do nosso banco de dados;203º. instanciamos a classe do Orator responsável pelo gerenciamento do banco de dados;214º. declarando as funções que rodam as queries;*22 - SELECT Query Builder23 - INSERT Query Builder24 - UPDATE Query Builder25 - atualiza pelo id (Esta função apresenta um tratamento para identificar quais campos serão atualizados.26 - DELETE Query Builder27 - deleta o registro do id informado28 - INCREMENT Query Builder29 - DECREMENT Query Builder305º. declarando uma função menu para auxiliar na iteração e teste das outras funções;*316º. uma função que executa um tipo 'formulário', ou simplesmente, que apresenta os campos para inserção dos valores;* 327º. exibe cada registro separadamente, como se fosse uma tabela;*338º. função tipo 'formulário' para atualização do registro;*349º. função para deletar registro pelo id;*3510º. função para incrementar (aumentar) a idade;3611º. função para decrementar (diminuir) a idade;37* Estas funções foram criados para facilitar a iteração deste script de forma dinâmica;38FINAL. bloco de repetição para iteração neste script39"""40# 1º41from orator import DatabaseManager42# 2º43config = {44 'sqlite3':{45 'driver':'sqlite',46 'database': 'person.db'47 }48 }49# 3º50db = DatabaseManager(config)51# 4º 52# SELECT Query Builder53def select_person():54 # Retorna um lista de dicionários com todos os registros (linhas), onde cada chave é o nome do campo na entidade55 return db.table('person').get()56# 4º 57# INSERT Query Builder58def insert_person(fields_dict):59 db.table('person').insert(fields_dict)60# 4º 61# UPDATE Query Builder62def update_person_byId(person_id, fields_dict):63 db.table('person').where('id', person_id).update(fields_dict)64# 4º 65# DELETE Query Builder66def delete_person_byId(person_id):67 db.table('person').where('id','=',person_id).delete()68# 4º69# INCREMENT Query Builder70def increment_age(increment_age=None, person_id=None):71 # Se não foi informado valor para incrementar a idade72 if increment_age is None:73 db.table('person').where('id','=',person_id).increment('age')74 else:75 db.table('person').where('id','=',person_id).increment('age', increment_age)76# 4º 77# DECREMENT Query Builder78def decrement_age(decrement_age=None, person_id=None):79 # Se não foi informado valor para incrementar a idade80 if decrement_age is None:81 db.table('person').where('id','=',person_id).decrement('age')82 else:83 db.table('person').where('id','=',person_id).decrement('age', decrement_age)84# 5º85def menu():86 print("\n******************** MENU ********************\n")87 print(" 1. Exibir os dados da tabela 'person'")88 print(" 2. Inserir novo registro")89 print(" 3. Atualizar um registro existente informando o ID")90 print(" 4. Deletar um registro existente")91 print(" 5. Aumenta idade da pessoa")92 print(" 6. Diminui idade da pessoa")93 print(" 99. para sair")94 print()95 return int(input("Informe a opção desejada: "))96# 6º97def insert_form():98 print("\nCadastro de Pessoa - NOVO")99 # a função input captura o que foi digitado como tipo texto (string)100 name = input("nome: ")101 last_name = input("sobrenome: ")102 sex = input("sexo (M/F/I): ").upper()103 age = int(input("idade: ") or "0") # lê o valor digitado ou, se teclado ENTER, insere o valor '0' e converte para tipo inteiro104 birth_date = input("data de nascimento (AAAA-mm-dd): ")105 dicionario_de_campos = {106 'name': name,107 'last_name': last_name,108 'sex': sex,109 'birth_date': birth_date,110 'age': age111 }112 insert_person(dicionario_de_campos)113# 7º114def view_person():115 print("\nRegistros da tabela 'person' ******************\n")116 117 # Cabeçalho da tabela118 print("{:^5}{:<20}{:<20}{:^6}{:^20}{:^5}".format('id', 'nome', 'sobrenome', 'sexo', 'data de nascimento','idade'))119 120 for dict_registro in select_person():121 print("{:^5}{:<20}{:<20}{:^6}{:^20}{:^5}".format(dict_registro['id'], dict_registro['name'], dict_registro['last_name'], dict_registro['sex'], dict_registro['birth_date'], dict_registro['age']))122 print()123# 8º124def update_form():125 dicionario_de_campos = {}126 127 print("\nCadastro de Pessoa - ATUALIZAR")128 try:129 person_id = int(input("ID do registro que será atualizado: "))130 print("\n Para os demais campos, tecle ENTER para não alterar.")131 name = input("nome: ")132 last_name = input("sobrenome: ")133 sex = input("sexo (M/F/I): ").upper()134 birth_date = input("data de nascimento (AAAA-mm-dd): ")135 age = int(input("idade: ") or "0") # lê o valor digitado ou, se teclado ENTER, insere o valor '0' e converte para tipo inteiro136 except:137 person_id = 0138 139 # se id foi invalidado não atualiza registro140 if person_id == 0:141 print(" Atualização cancelada!")142 else: 143 if len(name) != 0:144 dicionario_de_campos['name'] = name145 if len(last_name) != 0:146 dicionario_de_campos['last_name'] = last_name147 148 if len(sex) != 0:149 dicionario_de_campos['sex'] = sex150 151 if len(birth_date) != 0:152 dicionario_de_campos['birth_date'] = birth_date153 if age > 0:154 dicionario_de_campos['age'] = age155 156 update_person_byId(person_id, dicionario_de_campos)157# 9º158def delete_form():159 print("\nCadastro de Pessoa - DELETAR")160 try:161 person_id = int(input("ID do registro que será deletado: "))162 except:163 person_id = 0164 # Se id não é válido então operação não é realizada165 if person_id == 0:166 print(" Deletar cancelado!")167 else:168 delete_person_byId(person_id)169# 10º170def increment_age_formById():171 print("\nCadastro de Pessoa - Aumentar Idade")172 try:173 person_id = int(input("ID do registro: "))174 #person_name = input("Nome: ")175 except:176 person_id = 0177 try:178 increment_value = int(input("Informe em quantos anos deseja aumentar: "))179 except:180 increment_value = None181 # Se id não é válido então operação não é realizada182 if person_id == 0:183 print(" Incrementar idade cancelado!")184 else:185 increment_age(increment_value, person_id)186# 11º187def decrement_age_formById():188 print("\nCadastro de Pessoa - Diminuir Idade")189 try:190 person_id = int(input("ID do registro: "))191 #person_name = input("Nome: ")192 except:193 person_id = 0194 try:195 decrement_value = int(input("Informe em quantos anos deseja diminuir: "))196 except:197 decrement_value = None198 # Se id não é válido então operação não é realizada199 if person_id == 0:200 print(" Decrementar idade cancelado!")201 else:202 decrement_age(decrement_value, person_id)203 204# FINAL205executar_script = True # variável que tem a função de 'flag' (bandeira) para sinalizar a execução do laço de repetição206while executar_script:207 opcao = menu()208 if opcao == 1:209 view_person()210 elif opcao == 2:211 insert_form()212 elif opcao == 3:213 update_form()214 elif opcao == 4:215 delete_form()216 elif opcao == 5:217 increment_age_formById()218 elif opcao == 6:219 decrement_age_formById()220 elif opcao == 99:221 executar_script = False...
orator_main_001.py
Source:orator_main_001.py
1# -*- ISO-8859-1 -*-2#3# file: orator_main_001.py4#5# Created by Cleber Almeida Pereira6# e-mail: cleber.ap.desenvolvedor@gmail.com7#8# programming language: Python v3.7.39#10"""11Utilizando Orator ORM de forma básica12Fonte: https://orator-orm.com/docs/0.9/basic_usage.html13Neste script vamos testar, de forma básica, a conexão com um banco de dados sqlite3 denominado 'person.db' previamente criado.14O banco de dados utilizado pode estar, ou não, vazio.15Neste caso o banco de dados possui uma única tabela 'person' que possui os campos:16- id INTEGER (autoincrement)17- name VARCHAR(20)18- last_name VARCHAR(30)19- sex CHAR20- birth_date DATE21Etapas desenvolvidas no algoritmo:221º. importamos a biblioteca que realiza o gerenciamento;232º. criamos a descrição da configuração de conexão do nosso banco de dados;243º. instanciamos a classe do Orator responsável pelo gerenciamento do banco de dados;254º. declarando as funções que rodam as queries;*26 - SELECT query27 - INSERT query28 - UPDATE query29 - atualiza pelo id (Esta função apresenta um tratamento para identificar quais campos serão atualizados.30 - DELETE query31 - deleta o registro do id informado325º. declarando uma função menu para auxiliar na iteração e teste das outras funções;*336º. uma função que executa um tipo 'formulário', ou simplesmente, que apresenta os campos para inserção dos valores;* 347º. exibe cada registro separadamente, como se fosse uma tabela;*358º. função tipo 'formulário' para atualização do registro;*369º. função para deletar registro pelo id;*37* Estas funções foram criados para facilitar a iteração deste script de forma dinâmica;38FINAL. bloco de repetição para iteração neste script39"""40# 1º41from orator import DatabaseManager42# 2º43config = {44 'sqlite3':{45 'driver':'sqlite',46 'database': 'person.db'47 }48 }49# 3º50db = DatabaseManager(config)51# 4º 52# SELECT query53def select_person():54 results = db.select('SELECT * FROM person')55 # Retorna um lista de dicionários, onde cada chave é o nome do campo na entidade56 return results57# 4º 58# INSERT query59def insert_person(name=None, last_name=None, sex=None, birth_date=None):60 db.insert('INSERT INTO person (name, last_name, sex, birth_date) values (?,?,?,?)', [name,last_name,sex,birth_date])61# 4º 62# UPDATE query63def update_person_byId(person_id=None, name=None, last_name=None, sex=None, birth_date=None):64 # definindo variável com a query que será executada65 sql_query = 'UPDATE person SET '66 # declarando lista de valores necessários para a query final67 sql_list_values = []68 69 # Identificando quais campos serão atualizados70 # Se campo nome foi informado71 if name is not None:72 sql_query += 'name=?,'73 sql_list_values.append(name) # adicionando novo valor para nome à lista74 75 # Se campo nome foi informado76 if last_name is not None:77 sql_query += 'last_name=?,'78 sql_list_values.append(last_name) # adicionando novo valor para sobrenome à lista79 80 # Se campo nome foi informado81 if sex is not None:82 sql_query += 'sex=?,'83 sql_list_values.append(sex) # adicionando novo valor para sexo à lista84 85 # Se campo nome foi informado86 if birth_date is not None:87 sql_query += 'birth_date=?,'88 sql_list_values.append(birth_date) # adicionando novo valor para data de nascimento à lista89 # removendo última 'vÃrgula' inserida90 sql_query = sql_query[:-1]91 # inserindo cláusula 'where' para o id e inserindo valor do id à lista92 sql_query += ' where id=?'93 sql_list_values.append(person_id)94 95 db.update(sql_query, sql_list_values)96# 4º 97# DELETE query98def delete_person_byId(person_id):99 db.delete('delete from person where id=?', [person_id])100# 5º101def menu():102 print("\n******************** MENU ********************\n")103 print(" 1. Exibir os dados da tabela 'person'")104 print(" 2. Inserir novo registro")105 print(" 3. Atualizar um registro existente informando o ID")106 print(" 4. Deletar um registro existente")107 print(" 99. para sair")108 print()109 return int(input("Informe a opção desejada: "))110# 6º111def insert_form():112 print("\nCadastro de Pessoa - NOVO")113 name = input("nome: ")114 last_name = input("sobrenome: ")115 sex = input("sexo (M/F/I): ").upper()116 birth_date = input("data de nascimento (AAAA-mm-dd): ")117 insert_person(name, last_name, sex, birth_date)118# 7º119def view_person():120 print("\nRegistros da tabela 'person' ******************\n")121 122 # Cabeçalho da tabela123 print("{:^5}{:<20}{:<30}{:^6}{:^20}".format('id', 'nome', 'sobrenome', 'sexo', 'data de nascimento'))124 125 for dict_registro in select_person():126 print("{:^5}{:<20}{:<30}{:^6}{:^20}".format(dict_registro['id'], dict_registro['name'], dict_registro['last_name'], dict_registro['sex'], dict_registro['birth_date']))127 print()128# 8º129def update_form():130 print("\nCadastro de Pessoa - ATUALIZAR")131 try:132 person_id = int(input("ID do registro que será atualizado: "))133 print("\n Para os demais campos, tecle ENTER para não alterar.")134 name = input("nome: ")135 last_name = input("sobrenome: ")136 sex = input("sexo (M/F/I): ").upper()137 birth_date = input("data de nascimento (AAAA-mm-dd): ")138 except:139 person_id = 0140 141 # se id foi invalidado não atualiza registro142 if person_id == 0:143 print(" Atualização cancelada!")144 else: 145 if len(name) == 0:146 name = None147 if len(last_name) == 0:148 last_name = None149 150 if len(sex) == 0:151 sex = None152 153 if len(birth_date) == 0:154 birth_date = None155 156 #print("nome: {} - tipo: {}".format(name,type(name)))157 update_person_byId(person_id, name, last_name, sex, birth_date)158# 9º159def delete_form():160 print("\nCadastro de Pessoa - DELETAR")161 try:162 person_id = int(input("ID do registro que será deletado: "))163 except:164 person_id = 0165 if person_id == 0:166 print(" Deletar cancelado!")167 else:168 delete_person_byId(person_id)169 170# FINAL171executar_script = True # variável que tem a função de 'flag' (bandeira) para sinalizar a execução do laço de repetição172while executar_script:173 opcao = menu()174 if opcao == 1:175 view_person()176 elif opcao == 2:177 insert_form()178 elif opcao == 3:179 update_form()180 elif opcao == 4:181 delete_form()182 elif opcao == 99:183 executar_script = False...
impressora.py
Source:impressora.py
...8 self.socket.connect((ip, porta))9 self.limpar_warnings()10 # Envia comando para confirmar os 'warnings' da impressora11 def limpar_warnings(self):12 self.executar_script('ConfirmMessages;')13 def executar_script(self, comando: str, buffer_size: int = 1024):14 self.socket.send(bytes(comando + "\r\n", "utf-8"))15 data = self.socket.recv(buffer_size)16 print(data)17 return data18 def imprimir_codigo(self, tipo_codigo: str, rotacao: str, valor: str):19 while 'LaserStatusReady' not in self.executar_script('GetStatus;').decode():20 pass21 self.executar_script('SetJob;' + tipo_codigo) # set tipo22 # set position23 self.executar_script('SetRotation;' + rotacao) # set rotation24 self.executar_script('SetVars;codebar_string;' + valor) # set value25 self.executar_script('Start;') # print26 time.sleep(0.1)27 def acionar_impressora(self):28 self.executar_script('Start;')29 time.sleep(0.2)30 # recebe informacao de finalizacao da impressao31 while bytes('Ready', 'utf-8') not in self.executar_script('GetStatus;'):32 continue33 # informa finalizacao da impressao...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!