Até agora falei mais sobre os comandos do Selenium, e os exemplos que dei eram pra ser testados pela IDE. Como a IDE ainda só existe para o Firefox, os testes até então eram pra ser executados somente no Firefox. Mas e se você quiser testar no Internet Explorer 6? ou no 7? Ou no Safari? Ou até mesmo no browser mais recente do Google?
Aí que entra o servidor do Selenium. Você sobe um e escolhe em qual browser quer testar.
No site e na documentação do Selenium, o servidor é chamado de Selenium Remote Control, ou para os mais íntimos somente RC. Para baixar o servidor acesse http://seleniumhq.org/download. A última versão disponível é a 1.0 beta 2. Dentro do arquivo zipado, você vai encontrar uma pasta com o nome selenium-server que corresponde ao próprio servidor do selenium. As outras pastas com o nome client-driver correspondem às bibliotecas de cada linguagem disponível para comunicar com o servidor, que são:
- Java
- Ruby
- Python
- Php
- Perl
- .Net
Não vou me aprofundar muito sobre essas bibliotecas, mas gerar um teste em uma determinada linguagem é algo relativamente simples. A IDE tem uma opção de exportar os testes. Basta abrir um teste, clicar em file, export test case as, e escolher a linguagem desejada.
Mas não se assuste, você pode rodar o seu teste em outro browser sem a necessidade de exportá-lo para uma linguagem.
O pré-requisito para isso é ter o Java instalado na sua máquina.
O primeiro passo então é salvar o seu teste da IDE em uma determinada pasta. Só por curiosidade, na documentação do Selenium, um teste salvo pela IDE está no formato selenese. Após isso, entre no console (shell, cygwin, DOS) e vá até a pasta onde encontra-se o servidor do Selenium. Você vai ter que executar o seguinte comando:
java -jar selenium-server.jar -htmlSuite <browser> <startURL> <suiteFile> <resultFile>
Vou explicar os parâmetros desse comando de trás pra frente.
O parâmetro resultFile indica o arquivo em que será gerado o relatório do teste.
O suiteFile indica o seu arquivo selenese gerado pela IDE. O único problema é que ele tem que ser um suite e não um test case.
O parâmetro startURL indica a url do site a ser testado.
E por último nessa lista, mas o primeiro parâmetro do comando, está o browser. O valor que você tem que colocar nesse parâmetro, pode ser:
- *firefox
- *chrome
- *iexplore
- *iehta
- *safari
- *opera
- *googlechrome
- …
Detalhe é que o asterisco faz parte dos valores. O valor *chrome chama o próprio Firefox enquanto que o *iehta chama o IE. Mas há uma leve diferença entre eles. O *chrome e o *iehta são cross-domain, o que faz com que o Selenium não tenha problemas caso o fluxo do seu teste seja redirecionado para outro domínio. Eles também dão mais poder para o Selenium não se esbarrar em problemas de segurança dos browsers.
Na próxima versão do Selenium, *firefox será sinônimo para *chrome e assim o mesmo para *iexplore. Portanto, dê preferência para utilizar *chrome e *iehta.
Ao passar uma dessas strings para o servidor do Selenium, ele irá em busca do executável do browser procurando pelo path default de instalação. No Windows XP, por exemplo, passando como parâmetro o valor *chrome, o Selenium vai procurar por “C:\Program Files\Mozilla Firefox\firefox.exe”.
Mas e se você instalou o Firefox em outro path, sem ser o default? É simples, basta indicar a string do browser seguida do path completo para o executável, por exemplo “*chrome c:\firefox\firefox.exe”. As aspas duplas aqui não estão por acaso, você vai ter que colocá-las quando quiser especificar o path. Esse esquema de passar onde browser está instalado é muito útil quando você tem mais de uma versão do mesmo browser instalada na máquina.
A lista dos browsers suportados você pode encontrar aqui.
Caso você queira testar em um browser não suportado, o Selenium aceita a string “*custom” que funciona como um coringa.
Criei um arquivo de teste para que você possa comprovar que tudo isso funciona, ehehe. Você vai precisar baixar dois arquivos: o suite e o test-case. Salve-os no C: e depois rode o seguinte comando:
java -jar selenium-server.jar -htmlSuite *iehta http://www.seuenium.com.br c:\teste-suite.html c:\result.html
Depois abra o arquivo result.html para conferir o resultado da execução:

Bom, é isso aí galera… Qualquer dúvida só perguntar.