{"id":5745,"date":"2023-11-17T16:55:36","date_gmt":"2023-11-17T15:55:36","guid":{"rendered":"https:\/\/wiki.friendlycaptcha.com\/?p=5714"},"modified":"2024-05-17T16:45:35","modified_gmt":"2024-05-17T14:45:35","slug":"what-is-selenium","status":"publish","type":"post","link":"https:\/\/friendlycaptcha.com\/pt\/wiki\/what-is-selenium\/","title":{"rendered":"O que \u00e9 o sel\u00e9nio?"},"content":{"rendered":"<p>O Selenium \u00e9 uma poderosa ferramenta de c\u00f3digo aberto que suporta testes automatizados na Web. Fornece uma forma de os programadores escreverem scripts em v\u00e1rias linguagens de programa\u00e7\u00e3o como Java, PHP, Python, Perl e Ruby. O Selenium \u00e9 utilizado para o teste de aplica\u00e7\u00f5es Web e \u00e9 compat\u00edvel com v\u00e1rios navegadores e plataformas. N\u00e3o \u00e9 apenas uma ferramenta, mas tamb\u00e9m um conjunto de ferramentas que ajuda os testadores a automatizar as aplica\u00e7\u00f5es baseadas na Web de forma mais eficiente.<\/p>\n<p>Apesar da sua associa\u00e7\u00e3o comum com o elemento qu\u00edmico com o mesmo nome, no contexto da ciberseguran\u00e7a, o Selenium refere-se a uma estrutura espec\u00edfica de teste de software. Esta estrutura foi concebida para validar aplica\u00e7\u00f5es Web em diferentes navegadores e plataformas. A flexibilidade e robustez do Selenium tornaram-no uma escolha popular para programadores e testadores no dom\u00ednio da ciberseguran\u00e7a.<\/p>\n<h2 id=\"2\">Hist\u00f3ria do Sel\u00e9nio<\/h2>\n<p>O projeto Selenium foi iniciado em 2004 por Jason Huggins, um engenheiro da ThoughtWorks. Ele estava trabalhando em um aplicativo da Web que exigia testes frequentes. Para otimizar o processo de teste, ele desenvolveu uma biblioteca JavaScript que poderia controlar automaticamente as a\u00e7\u00f5es do navegador, que ele chamou de Selenium Core.<\/p>\n<p>Ao longo dos anos, o Selenium evoluiu e expandiu-se, incorporando novas tecnologias e metodologias. Passou de uma simples ferramenta de teste para um conjunto de testes abrangente, oferecendo uma gama de solu\u00e7\u00f5es para diferentes necessidades de teste.<\/p>\n<h3 id=\"3\">Desenvolvimento e evolu\u00e7\u00e3o<\/h3>\n<p>O desenvolvimento do Selenium n\u00e3o parou no Selenium Core. As limita\u00e7\u00f5es da pol\u00edtica de mesma origem, que restringe a forma como um documento ou script carregado de uma origem pode interagir com um recurso de outra origem, levaram \u00e0 cria\u00e7\u00e3o do Selenium Remote Control (RC).<\/p>\n<p>O Selenium RC era um servidor que actuava como um proxy HTTP para enganar o browser, fazendo-o acreditar que o Selenium Core e a aplica\u00e7\u00e3o Web que estava a ser testada provinham do mesmo dom\u00ednio. Essa solu\u00e7\u00e3o alternativa era criativa, mas tamb\u00e9m complexa. Portanto, para simplificar o processo de teste, o Selenium WebDriver foi introduzido como um substituto do Selenium RC.<\/p>\n<h2 id=\"4\">Componentes do sel\u00e9nio<\/h2>\n<p>O Selenium n\u00e3o \u00e9 apenas uma ferramenta \u00fanica, mas um conjunto de software, cada um deles satisfazendo as diferentes necessidades de teste de uma organiza\u00e7\u00e3o. Tem quatro componentes: Selenium Integrated Development Environment (IDE), Selenium Remote Control (RC), WebDriver e Selenium Grid.<\/p>\n<p>O Selenium IDE \u00e9 uma estrutura simples, f\u00e1cil de aprender e com uma interface de f\u00e1cil utiliza\u00e7\u00e3o para o desenvolvimento de testes automatizados. O Selenium RC permite escrever scripts de teste em qualquer linguagem de programa\u00e7\u00e3o, que podem ser executados em qualquer site HTTP, usando qualquer navegador convencional habilitado para JavaScript. O WebDriver \u00e9 uma ferramenta completamente diferente que tem v\u00e1rias vantagens sobre o Selenium RC. O Selenium Grid \u00e9 utilizado para distribuir a execu\u00e7\u00e3o dos seus testes em v\u00e1rias plataformas e ambientes em simult\u00e2neo.<\/p>\n<h3 id=\"5\">IDE do Selenium<\/h3>\n<p>O Selenium IDE (Integrated Development Environment) \u00e9 um plugin do Firefox que permite aos testadores registar as suas ac\u00e7\u00f5es \u00e0 medida que seguem o fluxo de trabalho que precisam de testar. \u00c9 uma interface f\u00e1cil de utilizar para desenvolver testes automatizados. O Selenium IDE tem uma funcionalidade de grava\u00e7\u00e3o, que regista as ac\u00e7\u00f5es do utilizador \u00e0 medida que s\u00e3o executadas e depois exporta-as como um script reutiliz\u00e1vel numa das muitas linguagens de programa\u00e7\u00e3o que podem ser executadas mais tarde.<\/p>\n<p>No entanto, o Selenium IDE n\u00e3o \u00e9 apenas uma ferramenta de reprodu\u00e7\u00e3o de registos. Ele oferece um ambiente de desenvolvimento integrado (IDE) completo para testes Selenium, com seu pr\u00f3prio conjunto de comandos Selenium exclusivo. Tamb\u00e9m fornece o suporte para extens\u00f5es, que permite aos utilizadores criar as suas pr\u00f3prias ac\u00e7\u00f5es, asser\u00e7\u00f5es e localizadores, e at\u00e9 controlar o fluxo do programa.<\/p>\n<h3 id=\"6\">Sel\u00e9nio RC<\/h3>\n<p>O Controlo Remoto Selenium (RC) foi a principal estrutura de teste de todo o projeto Selenium durante muito tempo. \u00c9 a primeira ferramenta de teste automatizado da Web que permite aos utilizadores utilizar a linguagem de programa\u00e7\u00e3o da sua prefer\u00eancia. A partir da vers\u00e3o 2.25.0, o RC pode suportar as seguintes linguagens de programa\u00e7\u00e3o: C#, Java, PHP, Python, Perl, Ruby.<\/p>\n<p>O RC tornou poss\u00edvel escrever testes automatizados para uma aplica\u00e7\u00e3o Web em qualquer linguagem de programa\u00e7\u00e3o, que poderia ser executada em qualquer navegador habilitado para JavaScript. Para conseguir isso, o Selenium RC usou um sistema de duas partes. Um servidor que inicia e mata navegadores, interpreta e executa os comandos Selenese passados pelo programa de teste, e age como um proxy HTTP para requisi\u00e7\u00f5es web deles. E bibliotecas de clientes, que fornecem uma interface entre cada linguagem de programa\u00e7\u00e3o e o servidor Selenium RC.<\/p>\n<h2 id=\"7\">Vantagens do sel\u00e9nio<\/h2>\n<p>O Selenium \u00e9 uma das ferramentas de teste automatizado mais populares para s\u00edtios Web e aplica\u00e7\u00f5es Web, e n\u00e3o \u00e9 dif\u00edcil perceber porqu\u00ea. \u00c9 de c\u00f3digo aberto, o que significa que \u00e9 livre para usar, distribuir e modificar. \u00c9 uma ferramenta vers\u00e1til que \u00e9 capaz de lidar com uma variedade de tarefas. Al\u00e9m disso, sendo uma estrutura para testes de aplica\u00e7\u00f5es Web, o Selenium suporta v\u00e1rios browsers como o Chrome, Mozilla, Safari e IE, e permite-lhe escrever scripts de teste em v\u00e1rias linguagens de programa\u00e7\u00e3o como Java, Perl, Python, Ruby, C#, etc.<\/p>\n<p>Al\u00e9m disso, o Selenium \u00e9 capaz de funcionar em diferentes sistemas operativos. O Selenium suporta Windows, macOS e Linux. Isto torna o Selenium altamente flex\u00edvel quando se trata de suporte de plataforma. Al\u00e9m disso, o Selenium pode ser integrado a ferramentas como TestNG e JUnit para gerenciar casos de teste e gerar relat\u00f3rios, e Maven, ANT e Jenkins para testes cont\u00ednuos.<\/p>\n<h3 id=\"8\">Flexibilidade e facilidade de integra\u00e7\u00e3o<\/h3>\n<p>Uma das principais vantagens do Selenium \u00e9 a sua flexibilidade. O Selenium oferece muita liberdade quando se trata de projetar sua estrat\u00e9gia de automa\u00e7\u00e3o. Pode optar por construir os seus testes num estilo declarativo, utilizando uma linguagem espec\u00edfica do dom\u00ednio (DSL) chamada Selenese, ou pode optar por escrev\u00ea-los numa s\u00e9rie de linguagens de programa\u00e7\u00e3o populares, como Java, Python ou Ruby.<\/p>\n<p>O Selenium tamb\u00e9m pode ser integrado com uma s\u00e9rie de aplica\u00e7\u00f5es e ferramentas de terceiros para melhorar a sua funcionalidade. Por exemplo, pode ser integrado com Maven ou Ant para compila\u00e7\u00e3o de c\u00f3digo-fonte, com TestNG ou JUnit para testes e com Jenkins ou Docker para integra\u00e7\u00e3o cont\u00ednua.<\/p>\n<h3 id=\"9\">Suporte a v\u00e1rios navegadores<\/h3>\n<p>Outra grande vantagem do Selenium \u00e9 a sua capacidade de suportar v\u00e1rios navegadores. Isto significa que pode escrever o seu teste uma vez, e ele ser\u00e1 executado em v\u00e1rios browsers, em diferentes sistemas operativos. Esta \u00e9 uma vantagem significativa em rela\u00e7\u00e3o a outras ferramentas de teste que est\u00e3o limitadas a um \u00fanico navegador ou sistema operativo.<\/p>\n<p>Al\u00e9m disso, o Selenium suporta n\u00e3o s\u00f3 todos os principais navegadores, mas tamb\u00e9m muitos dos menos populares. Isto inclui o Internet Explorer, Chrome, Firefox, Opera e Safari. E como a tecnologia principal do Selenium \u00e9 baseada em JavaScript, ele pode ser executado em qualquer plataforma que possa executar JavaScript.<\/p>\n<h2 id=\"10\">Limita\u00e7\u00f5es do sel\u00e9nio<\/h2>\n<p>Apesar das suas muitas vantagens, o Selenium tem as suas limita\u00e7\u00f5es. Por um lado, \u00e9 uma ferramenta para testar aplica\u00e7\u00f5es Web, o que significa que n\u00e3o pode ser utilizada para testar aplica\u00e7\u00f5es de ambiente de trabalho ou outros tipos de software. O Selenium tamb\u00e9m n\u00e3o suporta o teste de aplica\u00e7\u00f5es m\u00f3veis.<\/p>\n<p>Outra limita\u00e7\u00e3o do Selenium \u00e9 o facto de exigir conhecimentos t\u00e9cnicos consider\u00e1veis. O Selenium n\u00e3o \u00e9 uma ferramenta que possa ser utilizada sem qualquer conhecimento pr\u00e9vio ou experi\u00eancia em programa\u00e7\u00e3o. \u00c9 necess\u00e1rio estar familiarizado com pelo menos uma das linguagens de programa\u00e7\u00e3o suportadas, como Java ou Python, para poder escrever os seus testes.<\/p>\n<h3 id=\"11\">Requer compet\u00eancias de programa\u00e7\u00e3o<\/h3>\n<p>Uma das principais limita\u00e7\u00f5es do Selenium \u00e9 o facto de exigir conhecimentos de programa\u00e7\u00e3o. Esta \u00e9 uma grande barreira para muitos testadores que n\u00e3o est\u00e3o familiarizados com programa\u00e7\u00e3o. Escrever testes no Selenium requer conhecimento de uma linguagem de programa\u00e7\u00e3o suportada pelo Selenium, como Java, C# ou Python.<\/p>\n<p>Al\u00e9m disso, para tirar o m\u00e1ximo partido do Selenium, os testadores precisam de estar familiarizados com conceitos como a programa\u00e7\u00e3o orientada para objectos e padr\u00f5es de conce\u00e7\u00e3o. Isto pode tornar o Selenium uma ferramenta dif\u00edcil de utilizar para os testadores que v\u00eam de uma experi\u00eancia de teste manual mais tradicional.<\/p>\n<h3 id=\"12\">Sem relat\u00f3rio de teste integrado<\/h3>\n<p>Outra limita\u00e7\u00e3o do Selenium \u00e9 que ele n\u00e3o fornece nenhum recurso de relat\u00f3rio de teste embutido. Embora seja poss\u00edvel escrever o seu pr\u00f3prio c\u00f3digo para gerar relat\u00f3rios de teste no Selenium, \u00e9 muito trabalho extra e n\u00e3o \u00e9 algo que vem de f\u00e1brica.<\/p>\n<p>No entanto, existem v\u00e1rias ferramentas e plug-ins de terceiros dispon\u00edveis que podem ser integrados ao Selenium para gerar relat\u00f3rios de teste, como o TestNG ou o Allure. No entanto, estas ferramentas requerem instala\u00e7\u00e3o e configura\u00e7\u00e3o adicionais e podem nem sempre fornecer todas as informa\u00e7\u00f5es de que necessita para os seus relat\u00f3rios de teste.<\/p>\n<h2 id=\"13\">Conclus\u00e3o<\/h2>\n<p>Em conclus\u00e3o, o Selenium \u00e9 uma ferramenta poderosa para testar aplica\u00e7\u00f5es Web. Fornece uma forma de os programadores escreverem scripts em v\u00e1rias linguagens de programa\u00e7\u00e3o, como Java, PHP, Python, Perl e Ruby. \u00c9 compat\u00edvel com v\u00e1rios navegadores e plataformas, e \u00e9 de c\u00f3digo aberto, o que significa que \u00e9 livre para usar e modificar.<\/p>\n<p>No entanto, o Selenium tem as suas limita\u00e7\u00f5es. Requer uma boa dose de conhecimentos t\u00e9cnicos para ser utilizado eficazmente e n\u00e3o fornece qualquer capacidade de elabora\u00e7\u00e3o de relat\u00f3rios de teste incorporada. Apesar destas limita\u00e7\u00f5es, o Selenium continua a ser uma ferramenta popular no campo dos testes de aplica\u00e7\u00f5es Web, particularmente em \u00e1reas onde a capacidade de automatizar tarefas repetitivas \u00e9 cr\u00edtica.<\/p>","protected":false},"excerpt":{"rendered":"<p>Descubra o poder do Selenium, a vers\u00e1til ferramenta de automatiza\u00e7\u00e3o de c\u00f3digo aberto que revoluciona os testes Web.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"_thinkrank_schema_form_data":"","_thinkrank_selected_schema_type":"","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"","_thinkrank_og_title":"","_thinkrank_og_description":"","_thinkrank_og_image":"","_thinkrank_twitter_title":"","_thinkrank_twitter_description":"","_thinkrank_twitter_image":"","_thinkrank_imported_from":"rankmath","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"","_thinkrank_robots_meta_enabled":0,"_thinkrank_robots_meta":"","_thinkrank_advanced_robots_meta":"","_thinkrank_exclude_from_search":0,"_thinkrank_exclude_from_archives":0,"_thinkrank_primary_category":27,"footnotes":""},"categories":[27],"tags":[],"class_list":["post-5745","post","type-post","status-publish","format-standard","hentry","category-wiki"],"_links":{"self":[{"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/posts\/5745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/comments?post=5745"}],"version-history":[{"count":0,"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/posts\/5745\/revisions"}],"wp:attachment":[{"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/media?parent=5745"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/categories?post=5745"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/friendlycaptcha.com\/pt\/wp-json\/wp\/v2\/tags?post=5745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}