Como usar o Selenium IDE com Scripts & Comandos (Assert, Verify)

Índice:

Anonim

Usaremos o site da Mercury Tours como nosso aplicativo da web em teste. É um sistema de reserva de voos online que contém todos os elementos de que precisamos para este tutorial. Seu URL é http://demo.guru99.com/test/newtours/, e este será nosso URL base.

Criar um script por gravação

Vamos agora criar nosso primeiro script de teste no Selenium IDE usando o método mais comum - por gravação. Posteriormente, executaremos nosso script usando o recurso de reprodução.

Passo 1

  • Abra o Firefox e o Selenium IDE.
  • Digite o valor do nosso URL básico: http://demo.guru99.com/test/newtours/.
  • Ative o botão Gravar (se ainda não estiver ativado por padrão).
Passo 2

No Firefox, navegue até http://demo.guru99.com/test/newtours/. O Firefox deve levá-lo para uma página semelhante à mostrada abaixo.

etapa 3
  • Clique com o botão direito em qualquer espaço em branco da página, como no logotipo da Mercury Tours no canto superior esquerdo. Isso abrirá o menu de contexto do Selenium IDE. Nota: Não clique em nenhum objeto ou imagem com hiperlink
  • Selecione a opção "Mostrar comandos disponíveis".
  • Em seguida, selecione "assertTitle exact: Welcome: Mercury Tours." Este é um comando que garante que o título da página está correto.
Passo 4
  • Na caixa de texto "Nome do usuário" da Mercury Tours, digite um nome de usuário inválido, "invalidUNN".
  • Na caixa de texto "Senha", digite uma senha inválida, "invalidPWD".
Etapa 5
  • Clique no botão "Sign-In". O Firefox deve levá-lo a esta página.
Etapa 6

Desative o botão de gravação para interromper a gravação. Seu script agora deve ser semelhante ao mostrado abaixo.

Etapa 7

Agora que concluímos nosso script de teste, devemos salvá-lo em um caso de teste. No menu Arquivo, selecione "Salvar caso de teste". Como alternativa, você pode simplesmente pressionar Ctrl + S.

Etapa 8
  • Escolha o local desejado e nomeie o caso de teste como "Invalid_login".
  • Clique no botão "Salvar".
Etapa 9.

Observe que o arquivo foi salvo como HTML.

Etapa 10.

Volte para o Selenium IDE e clique no botão Playback para executar todo o script. O Selenium IDE deve ser capaz de replicar tudo perfeitamente.

Introdução aos Comandos do Selênio - Selenês

  • Os comandos Selenese podem ter no máximo dois parâmetros: destino e valor.
  • Os parâmetros não são obrigatórios o tempo todo. Depende de quantos o comando precisará.

3 tipos de comandos

Ações

Esses são comandos que interagem diretamente com os elementos da página.

Exemplo: o comando "clicar" é uma ação porque você interage diretamente com o elemento em que está clicando.

O comando "digitar" também é uma ação porque você está colocando valores em uma caixa de texto, e a caixa de texto os mostra a você em troca. Há uma interação bidirecional entre você e a caixa de texto.

Acessores

Eles são comandos que permitem armazenar valores em uma variável.

Exemplo: o comando "storeTitle" é um acessador porque apenas "lê" o título da página e o salva em uma variável. Ele não interage com nenhum elemento da página.

Afirmações

São comandos que verificam se uma determinada condição é atendida.

3 tipos de afirmações

  • Assert . Quando um comando "assert" falha, o teste é interrompido imediatamente.
  • Verifique . Quando um comando "verificar" falha, o Selenium IDE registra essa falha e continua com a execução do teste.
  • WaitFor . Antes de prosseguir para o próximo comando, os comandos "waitFor" irão primeiro esperar que uma determinada condição se torne verdadeira.
    • Se a condição se tornar verdadeira dentro do período de espera, a etapa será aprovada.
    • Se a condição não se tornar verdadeira, a etapa falhará. A falha é registrada e a execução do teste prossegue para o próximo comando.
    • Por padrão, o valor do tempo limite é definido como 30 segundos. Você pode alterar isso na caixa de diálogo Selenium IDE Options na guia General.

Assert vs. Verify

Comandos Comuns

Comando Número de Parâmetros Descrição
abrir 0 - 2

Abre uma página usando um URL.

click / clickAndWait 1

Clica em um elemento especificado.

type / typeKeys 2

Digita uma sequência de caracteres.

verifyTitle / assertTitle 1

Compara o título da página real com um valor esperado.

verifyTextPresent 1

Verifica se um determinado texto é encontrado na página.

verifyElementPresent 1

Verifica a presença de um determinado elemento.

verifyTable 2

Compara o conteúdo de uma tabela com os valores esperados.

waitForPageToLoad 1

Pausa a execução até que a página seja completamente carregada.

waitForElementPresent 1

Pausa a execução até que o elemento especificado se torne presente.

Crie um script manualmente com o Firebug

Agora, vamos recriar o mesmo caso de teste manualmente, digitando os comandos. Desta vez, precisaremos usar o Firebug.

Passo 1
  • Abra o Firefox e o Selenium IDE.
  • Digite o URL base (http://demo.guru99.com/test/newtours/).
  • O botão de gravação deve estar DESLIGADO.
Etapa 2: Clique na linha em branco superior no Editor.

Digite "abrir" na caixa de texto Comando e pressione Enter.

etapa 3
  • Navegue no Firefox até o nosso URL base e ative o Firebug
  • No painel Selenium IDE Editor, selecione a segunda linha (a linha abaixo do comando "abrir") e crie o segundo comando digitando "assertTitle" na caixa Comando.
  • Sinta-se à vontade para usar o recurso de preenchimento automático.
Passo 4
  • No Firebug, expanda a tag para exibir a tag .</li> <li>Clique no valor da tag <title> (que é "Bem-vindo: Mercury Tours") e cole-o no campo Destino no Editor.</li> </ul> </td> </tr> <tr> <td><strong>Etapa 5</strong> <ul> <li>Para criar o terceiro comando, clique na terceira linha em branco no Editor e digite "digite" na caixa de texto Comando.</li> <li>No Firebug, clique no botão "Inspecionar".</li> </ul> </td> </tr> <tr> <td>Clique na caixa de texto Nome do usuário. Observe que o Firebug mostra automaticamente o código HTML desse elemento.</td> </tr> <tr> <td><strong>Etapa 6</strong> <p>Observe que a caixa de texto Nome do usuário não possui um ID, mas possui um atributo NAME. Devemos, portanto, usar seu NOME como o localizador. Copie o valor NAME e cole-o no campo Destino no Selenium IDE.</p> <p>Ainda na caixa de texto Destino, prefixe "userName" com "name =", indicando que o Selenium IDE deve ter como alvo um elemento cujo atributo NAME é "userName".</p> <p>Digite "invalidUN" na caixa de texto Valor do Selenium IDE. Seu script de teste agora deve ser semelhante à imagem abaixo. Terminamos o terceiro comando. Nota: Em vez de invalidUN, você pode inserir qualquer outra string de texto. Mas o Selenium IDE diferencia maiúsculas de minúsculas e você digita valores / atributos exatamente como no aplicativo.</p> </td> </tr> <tr> <td><strong>Etapa 7</strong> <ul> <li>Para criar o quarto comando, digite "digite" na caixa de texto Comando.</li> <li>Novamente, use o botão "Inspecionar" do Firebug para obter o localizador da caixa de texto "Senha".</li> </ul> <ul> <li> <p>Cole o atributo NAME ("senha") no campo Destino e prefixe-o com "nome ="</p> </li> <li> <p>Digite "invalidPW" no campo Valor no Selenium IDE. Seu script de teste agora deve ser semelhante à imagem abaixo.</p> </li> </ul> </td> </tr> <tr> <td><strong>Etapa 8</strong> <ul> <li>Para o quinto comando, digite "clickAndWait" na caixa de texto Comando no Selenium IDE.</li> <li>Use o botão "Inspecionar" do Firebug para obter o localizador do botão "Entrar".</li> </ul> <ul> <li>Cole o valor do atributo NAME ("login") na caixa de texto Destino e prefixe-o com "name =".</li> <li>Seu script de teste agora deve ser semelhante à imagem abaixo.</li> </ul> </td> </tr> </tbody> </table> <p><strong>Etapa 9:</strong> Salve o caso de teste da mesma maneira que fizemos na seção anterior.</p> <a id="menu-6"></a> <h2>Usando o botão Localizar</h2> <p><strong>O botão Localizar no Selenium IDE é usado para verificar se o que colocamos na caixa de texto Destino é de fato o elemento de IU correto.</strong></p> <p>Vamos usar o caso de teste Invalid_login que criamos nas seções anteriores. Clique em qualquer comando com uma entrada de destino, digamos, o terceiro comando.</p> <p>Clique no botão Encontrar. Observe que a caixa de texto Nome do usuário na página Mercury Tours fica destacada por um segundo.</p> <p>Isso indica que o Selenium IDE foi capaz de detectar e acessar o elemento esperado corretamente. Se o botão Localizar realçar um elemento diferente ou nenhum elemento, então deve haver algo errado com seu script.</p> <a id="menu-7"></a> <h2>Executar Comando</h2> <p><strong>Isso permite que você execute qualquer comando único sem executar todo o caso de teste</strong> . Basta clicar na linha que deseja executar e, em seguida, clicar em "Ações> Executar este comando" na barra de menus ou simplesmente pressionar "X" no teclado.</p> <p><strong>Etapa 1.</strong> Certifique-se de que seu navegador esteja na página inicial da Mercury Tours. Clique no comando que deseja executar. Neste exemplo, clique na linha "type | userName | invalidUN".</p> <p><strong>Etapa 2.</strong> Pressione "X" no teclado.</p> <p><strong>Etapa 3.</strong> Observe que a caixa de texto do nome de usuário é preenchida com o texto "invalidUN"</p> <p><strong>A execução de comandos dessa maneira depende muito da página que o Firefox está exibindo no momento</strong> . Isso significa que se você tentar o exemplo acima com a página inicial do Google exibida em vez de Mercury Tours ', sua etapa falhará porque não há uma caixa de texto com um atributo "userName" na página inicial do Google.</p> <a id="menu-8"></a> <h2>Ponto de partida</h2> <p><strong>Um ponto inicial é um indicador que informa ao Selenium IDE em quais linhas a execução será iniciada</strong> . <strong>Sua tecla de atalho é "S".</strong></p> <p>No exemplo acima, a reprodução começará na terceira linha (digite | senha | invalidPW). <strong>Você só pode ter um ponto inicial em um único script de teste.</strong></p> <p>O ponto de início é semelhante a Executar Comando, de forma que eles dependem da página exibida no momento. O ponto inicial falhará se você estiver na página errada.</p> <a id="menu-9"></a> <h2>Breakpoints</h2> <p>Os pontos de interrupção são indicadores que informam ao Selenium IDE onde pausar automaticamente o teste. <strong>A tecla de atalho é "B".</strong></p> <p>O destaque amarelo significa que a etapa atual está pendente. Isso prova que o Selenium IDE pausou a execução nessa etapa. <strong>Você pode ter vários pontos de interrupção em um caso de teste.</strong></p> <a id="menu-10"></a> <h2>Etapa</h2> <p>Ele permite que você execute comandos sucessivos um de cada vez após pausar o caso de teste. Vamos usar o cenário da seção anterior "Pontos de interrupção".</p> <table> <tbody> <tr> <td width="50%"> </td> <td> <p><strong>Antes de clicar em "Etapa".</strong></p> <p>O caso de teste pausa na linha "clickAndWait | login".</p> </td> </tr> <tr> <td width="50%"> </td> <td> <p><strong>Depois de clicar em "Etapa".</strong></p> <p>A linha "clickAndWait | login" é executada e pausa para o próximo comando (verifyTitle | Sign-on: Mercury Tours).</p> <p>Observe que a próxima linha está pausada, embora não haja nenhum ponto de interrupção lá. Este é o objetivo principal do recurso Step - ele executa os comandos seguintes, um de cada vez, para dar a você mais tempo para inspecionar o resultado após cada etapa.</p> </td> </tr> </tbody> </table> <a id="menu-11"></a> <h2>Coisas importantes a serem observadas ao usar outros formatos na visualização de código-fonte</h2> <p><strong>Selenium IDE funciona bem apenas com HTML - outros formatos ainda estão em modo experimental</strong> . <strong>NÃO</strong> é <strong>aconselhável</strong> criar ou editar testes usando outros formatos na visualização do código-fonte porque ainda há muito trabalho necessário para torná-lo estável. Abaixo estão os bugs conhecidos da versão 1.9.1.</p> <ul> <li>Você não será capaz de executar a reprodução nem voltar para a visualização em tabela, a menos que reverta para o HTML.</li> <li>A única maneira de adicionar comandos com segurança no código-fonte é gravando-os.</li> <li>Quando você modifica o código-fonte manualmente, tudo é perdido quando você muda para outro formato.</li> <li>Embora você possa salvar seu caso de teste na Visualização de código-fonte, o Selenium IDE não será capaz de abri-lo.</li> </ul> <p><strong>A maneira recomendada de converter os testes Selenese é usar a opção "Export Test Case As ..." no menu File, e não por meio da Source View.</strong></p> <a id="menu-12"></a> <h2>Resumo</h2> <ul> <li>Os scripts de teste podem ser criados gravando ou digitando os comandos e parâmetros manualmente.</li> <li>Ao criar scripts manualmente, o Firebug é usado para obter o localizador.</li> <li>O botão Localizar é usado para verificar se o comando é capaz de acessar o elemento correto.</li> <li>A Visualização de tabela exibe um script de teste em formato tabular enquanto a Visualização de código-fonte o exibe em formato HTML.</li> <li>Alterar a visualização do código-fonte para um formato não HTML ainda é experimental.</li> <li>Não use a Visualização do código-fonte na criação de testes em outros formatos. Em vez disso, use os recursos de exportação.</li> <li>Os parâmetros não são obrigatórios o tempo todo. Depende do comando.</li> <li>Existem três tipos de comandos:</li> <ul> <li>Ações - interage diretamente com os elementos da página</li> <li>Acessores - "lê" uma propriedade de elemento e a armazena em uma variável</li> <li>Assertions - compara um valor real com um esperado</li> </ul> <li>As afirmações têm três tipos:</li> <ul> <li>Assert - em caso de falha, as etapas seguintes não são mais executadas</li> <li>Verificar - em caso de falha, as etapas seguintes ainda são executadas.</li> <li>WaitFor - passa se a condição especificada se tornar verdadeira dentro do período de tempo limite; caso contrário, irá falhar</li> </ul> <li>Os comandos mais comuns são:</li> <ul> <li>abrir</li> <li>click / clickAndWait</li> <li>type / typeKeys</li> <li>verifyTitle / assertTitle</li> <li>verifyTextPresent</li> <li>verifyElementPresent</li> <li>verifyTable</li> <li>waitForPageToLoad</li> <li>waitForElementPresent</li> </ul> </ul> </div> </article> <div id="container-5533149ee6411a5f99b370c693e87966"></div> </div> </div> </div> </div> </div> <aside class="col-lg-4 sidebar sidebar--right"> <div class="widget widget-popular-posts"> <h2 class="widget-title">Publicações Populares</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8004189-146-getting-more-from-google-analytics-with-philip-walton" title="# 146: Obtendo mais do Google Analytics com Philip Walton - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/6795669/146_getting_more_from_google_analytics_with_philip_walton_css-tricks.png.webp" loading="lazy" alt="# 146: Obtendo mais do Google Analytics com Philip Walton - CSS-Tricks" title="# 146: Obtendo mais do Google Analytics com Philip Walton - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004189-146-getting-more-from-google-analytics-with-philip-walton" title="# 146: Obtendo mais do Google Analytics com Philip Walton - CSS-Tricks" rel="bookmark"># 146: Obtendo mais do Google Analytics com Philip Walton - CSS-Tricks 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8004190-148-laying-things-out-html-and-flexbox-with-dee-gill" title="# 148: Apresentando as coisas (HTML e Flexbox) com Dee Gill - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/9608764/148_laying_things_out_html_flexbox_with_dee_gill_css-tricks.png.webp" loading="lazy" alt="# 148: Apresentando as coisas (HTML e Flexbox) com Dee Gill - CSS-Tricks" title="# 148: Apresentando as coisas (HTML e Flexbox) com Dee Gill - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004190-148-laying-things-out-html-and-flexbox-with-dee-gill" title="# 148: Apresentando as coisas (HTML e Flexbox) com Dee Gill - CSS-Tricks" rel="bookmark"># 148: Apresentando as coisas (HTML e Flexbox) com Dee Gill - CSS-Tricks 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8004192-147-starting-a-react-powered-comment-form" title="# 147: Iniciando um formulário de comentário baseado no React - CSS-Tricks" rel="bookmark"><img src="https://cdn.css-code.org/4837526/147_starting_a_react-powered_comment_form_css-tricks.png.webp" loading="lazy" alt="# 147: Iniciando um formulário de comentário baseado no React - CSS-Tricks" title="# 147: Iniciando um formulário de comentário baseado no React - CSS-Tricks" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8004192-147-starting-a-react-powered-comment-form" title="# 147: Iniciando um formulário de comentário baseado no React - CSS-Tricks" rel="bookmark"># 147: Iniciando um formulário de comentário baseado no React - CSS-Tricks 2025</a></h3> </div> </div> </li> </ul> </div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Melhores comentários para o mês</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224236-mm17-mass-maintenance-of-material-master-in-sap" title="MM17: Manutenção em massa do mestre de materiais no SAP" rel="bookmark">MM17: Manutenção em massa do mestre de materiais no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224237-introduction-to-purchasing-and-purchase-requisition-in-sap" title="Introdução a compras & Requisição de compra no SAP" rel="bookmark">Introdução a compras & Requisição de compra no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224238-how-to-change-a-purchase-info-record-me12-in-sap" title="Como alterar um registro de informações de compra: ME12 no SAP" rel="bookmark">Como alterar um registro de informações de compra: ME12 no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224239-how-to-convert-purchase-requistion-to-purchase-order-in-sap" title="Como converter uma solicitação de compra em pedido de compra no SAP" rel="bookmark">Como converter uma solicitação de compra em pedido de compra no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224240-how-to-create-a-purchase-requisition-in-sap-me51n" title="Como criar uma requisição de compra no SAP: ME51N" rel="bookmark">Como criar uma requisição de compra no SAP: ME51N</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224241-me11-how-to-create-a-purchase-info-record-in-sap" title="ME11: Como criar um registro de informações de compra no SAP" rel="bookmark">ME11: Como criar um registro de informações de compra no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224242-me41-how-to-create-rfq-request-for-quotation-in-sap" title="ME41: Como criar RFQ (solicitação de cotação) no SAP" rel="bookmark">ME41: Como criar RFQ (solicitação de cotação) no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224243-me47-how-to-create-quotation-in-sap-mm" title="ME47: Como criar cotação no SAP MM" rel="bookmark">ME47: Como criar cotação no SAP MM</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224244-how-to-compare-price-for-different-quotation-sap-me49" title="Como comparar o preço de uma cotação diferente: SAP ME49" rel="bookmark">Como comparar o preço de uma cotação diferente: SAP ME49</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224245-how-to-create-a-source-list-determination-sap-me05" title="Como criar uma determinação de lista de fontes: SAP ME05" rel="bookmark">Como criar uma determinação de lista de fontes: SAP ME05</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224246-how-to-select-or-reject-a-quotation-sap-me47" title="Como selecionar ou rejeitar uma cotação: SAP ME47" rel="bookmark">Como selecionar ou rejeitar uma cotação: SAP ME47</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224247-material-master-views-in-sap-the-ultimate-guide" title="Visões do mestre de materiais no SAP: o guia definitivo" rel="bookmark">Visões do mestre de materiais no SAP: o guia definitivo</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224248-me22n-how-to-change-a-purchase-order-in-sap" title="ME22N: Como alterar um pedido de compra no SAP" rel="bookmark">ME22N: Como alterar um pedido de compra no SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224253-how-to-create-purchase-order-with-reference-me58-me21n-in-sap" title="Como criar um pedido de compra com a referência ME58 - ME21N em SAP" rel="bookmark">Como criar um pedido de compra com a referência ME58 - ME21N em SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8224267-how-to-post-goods-receipt-sap-migo" title="Como registrar o recebimento de mercadorias: SAP MIGO" rel="bookmark">Como registrar o recebimento de mercadorias: SAP MIGO</a></h3> </div> </div> </li> </ul> </div> <div id="container-5533149ee6411a5f99b370c693e87966"></div> <div class="widget widget-popular-posts"> <h2 class="widget-title">Principais Artigos</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226577-numpy-hstack-and-numpy-vstack-in-python-with-example" title="Numpy.hstack () e numpy.vstack () em Python com Exemplo" rel="bookmark"><img src="https://cdn.css-code.org/6090576/numpyhstack_and_numpyvstack_in_python_with_example.png.webp" loading="lazy" alt="Numpy.hstack () e numpy.vstack () em Python com Exemplo" title="Numpy.hstack () e numpy.vstack () em Python com Exemplo" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226577-numpy-hstack-and-numpy-vstack-in-python-with-example" title="Numpy.hstack () e numpy.vstack () em Python com Exemplo" rel="bookmark">Numpy.hstack () e numpy.vstack () em Python com Exemplo 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226578-numpy-zeros-in-python-numpy-ones-in-python-with-example" title="Numpy.zeros () em Python - numpy.ones () em Python com Exemplo" rel="bookmark"><img src="https://cdn.css-code.org/1224294/numpyzeros_in_python_numpyones_in_python_with_example.png.webp" loading="lazy" alt="Numpy.zeros () em Python - numpy.ones () em Python com Exemplo" title="Numpy.zeros () em Python - numpy.ones () em Python com Exemplo" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226578-numpy-zeros-in-python-numpy-ones-in-python-with-example" title="Numpy.zeros () em Python - numpy.ones () em Python com Exemplo" rel="bookmark">Numpy.zeros () em Python - numpy.ones () em Python com Exemplo 2025</a></h3> </div> </div> </li><li class="post-list-small__item"> <div class="post-list-small__entry clearfix"> <div class="post-list-small__img-holder"> <div class="thumb-container thumb-100"><a href="/8226579-how-to-download-and-install-tensorflow-jupyter-windowsmac" title="Como fazer o download & Instale o TensorFLow: Jupyter - Windows / Mac" rel="bookmark"><img src="https://cdn.css-code.org/3674704/how_to_download_ampamp_install_tensorflow_jupyter_windowsmac.png.webp" loading="lazy" alt="Como fazer o download & Instale o TensorFLow: Jupyter - Windows / Mac" title="Como fazer o download & Instale o TensorFLow: Jupyter - Windows / Mac" class="post-list-small__img--rounded" style="width:88px;height:88px" /></a></div> </div> <div class="post-list-small__body"> <h3 class="post-list-small__entry-title"><a href="/8226579-how-to-download-and-install-tensorflow-jupyter-windowsmac" title="Como fazer o download & Instale o TensorFLow: Jupyter - Windows / Mac" rel="bookmark">Como fazer o download & Instale o TensorFLow: Jupyter - Windows / Mac 2025</a></h3> </div> </div> </li> </ul> </div> </aside> </div> </div> <footer class="footer footer--dark"> <div class="container"> <div class="footer__widgets"> <div class="row"> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Publicações Populares</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003078-scrollbar-gutter" title="Scrollbar-gutter - CSS-Tricks" rel="bookmark">Scrollbar-gutter - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003079-transition-property" title="Propriedade de transição - CSS-Tricks" rel="bookmark">Propriedade de transição - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003080-transition-timing-function" title="Função de tempo de transição - CSS-Tricks" rel="bookmark">Função de tempo de transição - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003081-unicode-range" title="Intervalo unicode - CSS-Tricks" rel="bookmark">Intervalo unicode - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8003082-visibility" title="Visibilidade - CSS-Tricks" rel="bookmark">Visibilidade - CSS-Tricks</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Escolha Do Editor</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004131-using-custom-fields" title="Usando campos personalizados - CSS-Tricks" rel="bookmark">Usando campos personalizados - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004132-year-shortcode" title="Ano Shortcode - CSS-Tricks" rel="bookmark">Ano Shortcode - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004134-shortcode-in-a-template" title="Shortcode em um modelo - CSS-Tricks" rel="bookmark">Shortcode em um modelo - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004136-101-lets-suck-at-github-together" title="# 101: Vamos chupar no GitHub juntos - CSS-Tricks" rel="bookmark"># 101: Vamos chupar no GitHub juntos - CSS-Tricks</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8004137-100-lets-write-semantic-markup" title="# 100: Vamos escrever marcação semântica - CSS-Tricks" rel="bookmark"># 100: Vamos escrever marcação semântica - CSS-Tricks</a></h3> </div> </div> </li> </ul> </div> </div> <div class="col-lg-4"> <div class="widget"> <h2 class="widget-title">Principais Artigos</h2> <ul class="post-list-small"> <li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224223-sap-fi01-how-to-create-a-bank-key" title="SAP FI01: Como criar uma CHAVE DE BANCO" rel="bookmark">SAP FI01: Como criar uma CHAVE DE BANCO</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224224-sap-wage-type-reporter-pc00-mxx-cwtr" title="Relator da rubrica salarial SAP: PC00_MXX_CWTR" rel="bookmark">Relator da rubrica salarial SAP: PC00_MXX_CWTR</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224225-top-sap-hr-interview-questions" title="Principais perguntas da entrevista de RH do SAP" rel="bookmark">Principais perguntas da entrevista de RH do SAP</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224227-bank-transfer-using-sap-dme-file" title="Transferência bancária usando arquivo SAP DME" rel="bookmark">Transferência bancária usando arquivo SAP DME</a></h3> </div> </div> </li><li class="post-list-small__item"> <div> <div> <h3 class="post-list-small__entry-title"><a href="/8224228-sap-hr-module-pdf-hcm-and-payroll-overview-download-now" title="Módulo SAP HR PDF: HCM & Visão geral da folha de pagamento (baixe agora)" rel="bookmark">Módulo SAP HR PDF: HCM & Visão geral da folha de pagamento (baixe agora)</a></h3> </div> </div> </li> </ul> </div> </div> </div> <p>© Copyright pt.css-code.org, 2025 Fevereiro | <a href="https://pt.css-code.org/about-site" title="Sobre o site">Sobre o site</a> | <a href="https://pt.css-code.org/contacts" title="Contatos">Contatos</a> | <a href="https://pt.css-code.org/privacy-policy" title="Política de Privacidade">Política de Privacidade</a>. </p> </div> </div> </footer> <link href="https://css-code.org/template/css/style.min.css" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" /> </body> </html>