Driver de unidade HTML em Selenium
Um navegador headless รฉ um navegador da web sem interface grรกfica de usuรกrio. Ele pode ser executado em segundo plano sem distraรงรตes visuais. Ele oferece uma maneira eficiente e eficaz de testar aplicativos da web, economizando tempo e recursos. Neste tutorial, vamos nos aprofundar no que รฉ um navegador headless, quando usar o teste de navegador headless e como executรก-lo usando Selenium.
O que รฉ o navegador sem cabeรงa?
Um navegador sem cabeรงa รฉ um navegador da web sem uma interface grรกfica de usuรกrio. Este programa se comportarรก como um navegador, mas nรฃo mostrarรก nenhuma GUI.
Alguns dos exemplos de drivers sem cabeรงa incluem
- HtmlUnitName
- Ghost
- PhantomJSGenericName
- ZumbiJS
- Watir-webdriver
Quando usar o teste de navegador sem cabeรงa?
Na era digital de hoje, os aplicativos da web sรฃo desenvolvidos para serem compatรญveis com uma ampla variedade de dispositivos e plataformas. Isso geralmente representa um desafio para os desenvolvedores de sites que precisam garantir que seus aplicativos funcionem perfeitamente nessas plataformas. O teste de navegador headless รฉ uma soluรงรฃo ideal para esse problema, pois permite que os desenvolvedores testem seus aplicativos da web sem a necessidade de uma interface grรกfica de usuรกrio. Ao usar testes de navegador headless, os desenvolvedores podem testar facilmente aplicativos da web complexos com vรกrios componentes e dependรชncias, abrindo caminho para um desenvolvimento mais rรกpido, cรณdigo livre de bugs e usuรกrios satisfeitos.
Teste de navegador sem cabeรงa com Selenium
Selenium รฉ uma ferramenta poderosa para testes de navegador headless, permitindo que desenvolvedores executem testes automatizados sem a necessidade de uma interface de usuรกrio visรญvel. Ao executar testes em segundo plano, Selenium pode economizar tempo e recursos, ao mesmo tempo que ajuda a identificar problemas que podem nรฃo ser aparentes em um ambiente de teste tradicional baseado em UI. Isso inclui questรตes relacionadas ao desempenho e problemas de layout que sรณ podem se tornar evidentes em um ambiente sem cabeรงa. No entanto, รฉ importante ter em mente as limitaรงรตes dos testes headless e equilibrรก-los com mรฉtodos tradicionais baseados em UI para garantir uma cobertura abrangente de testes.
Exemplos populares de navegadores sem cabeรงa
Existem muitos navegadores headless disponรญveis, cada um com seus prรณprios recursos e benefรญcios exclusivos, tornando-os adequados para diferentes casos de uso. Nรณs os discutimos abaixo: -
PhantomJSGenericName
PhantomJS รฉ um navegador headless que utiliza WebKit como mecanismo de renderizaรงรฃo e oferece suporte a vรกrios padrรตes da web, como HTML5, CSS3 e JavaScript. Pode ser usado para captura de tela e tarefas de automaรงรฃo de pรกgina. ร de cรณdigo aberto e compatรญvel com vรกrios sistemas operacionais.
Exemplo de Selenium com PhantomJS sem cabeรงa em Python
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
# Set up PhantomJS options
phantomjs_options = webdriver.DesiredCapabilities.PHANTOMJS.copy()
phantomjs_options['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
# Set up the PhantomJS driver
driver = webdriver.PhantomJS('/path/to/phantomjs', desired_capabilities=phantomjs_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Chrome
O Chrome รฉ o navegador mais popular do planeta e tambรฉm oferece um recurso sem cabeรงa. Ele pode ser usado em vรกrias plataformas e oferece suporte a linguagens de programaรงรฃo e estruturas. Suas ferramentas de depuraรงรฃo integradas e extensa documentaรงรฃo facilitam o uso e a soluรงรฃo de quaisquer problemas que possam surgir durante os testes.
Exemplo de Chrome sem cabeรงa com Selenium in Python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Set up Chrome options
chrome_options = Options()
chrome_options.add_argument('--headless') # Run Chrome in headless mode
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
# Set up the Chrome driver
driver = webdriver.Chrome('/path/to/chromedriver', options=chrome_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Firefox
Firefox รฉ um navegador popular que tambรฉm pode ser usado como navegador sem cabeรงa para fins de teste. Um dos benefรญcios de usar Firefox como um navegador headless รฉ sua natureza leve, tornando-o uma opรงรฃo versรกtil para testes em vรกrios sistemas operacionais. Alรฉm disso, com sua extensa documentaรงรฃo e suporte da comunidade, Firefox รฉ uma excelente escolha para quem deseja experimentar a tecnologia de navegador sem cabeรงa.
Exemplo de sem cabeรงa Firefox com Selenium in Python
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
# Set up Firefox options
firefox_options = Options()
firefox_options.add_argument('--headless') # Run Firefox in headless mode
# Set up the Firefox driver
driver = webdriver.Firefox(options=firefox_options)
# Perform actions using the driver
driver.get('https://www.example.com')
print(driver.title)
# Close the driver
driver.quit()
Vantagens do teste de navegador sem cabeรงa
- Execuรงรฃo de teste mais rรกpida
- Testes econรดmicos
- Melhor cobertura de testes
- Flexibilidade na execuรงรฃo de testes
- Integraรงรฃo com pipelines de CI/CD
Desvantagens do teste de navegador sem cabeรงa
- Falta de GUI
- Dificuldades na depuraรงรฃo
- Suporte limitado ao navegador
HTMLUnitDriver
HTML UnitDriver รฉ o navegador headless mais leve e de implementaรงรฃo mais rรกpida do WebDriver. ร baseado em HtmlUnit. ร conhecido como Driver de navegador sem cabeรงa. ร igual ao Chrome, IE ou FireFox driver, mas nรฃo possui GUI, portanto nรฃo รฉ possรญvel ver a execuรงรฃo do teste na tela.
Recursos do driver da unidade HTML
- Suporte para os protocolos HTTPS e HTTP
- Suporte para respostas HTML (clicar em links, enviar formulรกrios, percorrer o modelo DOM do documento HTML, etc.)
- Suporte para cookies
- Suporte a servidor proxy
- Suporte para autenticaรงรฃo bรกsica e NTLM
- Excelente JavaScript ajuda
- Suporte para mรฉtodos de envio GET e POST
- Capacidade de personalizar os cabeรงalhos de solicitaรงรฃo enviados ao servidor
- Capacidade de determinar se as respostas com falha do servidor devem lanรงar exceรงรตes ou devem ser retornadas como pรกginas do tipo apropriado
Etapas para usar o driver HTMLUnit com Selenium
Passo 1) In Eclipse, copie o cรณdigo a seguir. Adicione os arquivos da biblioteca selenium padrรฃo ao projeto. Nenhum arquivo jar adicional รฉ necessรกrio.
package htmldriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class htmlUnitYest {
public static void main(String[] args) {
// Creating a new instance of the HTML unit driver
WebDriver driver = new HtmlUnitDriver();
// Navigate to Google
driver.get("http://www.google.com");
// Locate the searchbox using its name
WebElement element = driver.findElement(By.name("q"));
// Enter a search query
element.sendKeys("Guru99");
// Submit the query. Webdriver searches for the form using the text input element automatically
// No need to locate/find the submit button
element.submit();
// This code will print the page title
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Etapa 2) Execute o cรณdigo. Vocรช observarรก que nenhum navegador foi iniciado e os resultados sรฃo mostrados no console.
Benefรญcios do driver da unidade HTML:
- Como nรฃo estรก usando nenhuma GUI para testar, seus testes serรฃo executados em segundo plano sem qualquer interrupรงรฃo visual
- Em comparaรงรฃo com todas as outras instรขncias, a execuรงรฃo รฉ mais rรกpida
- Para executar seus testes atravรฉs do driver HtmlUnit vocรช tambรฉm pode selecionar outras versรตes do navegador
-
ร independente de plataforma e mais fรกcil de executar vรกrios testes simultaneamente. Ideal para Teste de carga.
Limitaรงรตes:
- Nรฃo pode emular outros navegadores JavaComportamento do script
PhantomJSGenericName
PhantomJS รฉ um navegador sem cabeรงa com JavaAPI de script. ร uma soluรงรฃo ideal para testes de sites sem cabeรงalho, acesso e manipulaรงรฃo de pรกginas da web e vem com a API DOM padrรฃo.
Para usar o PhantomJS com o Seleniun, รฉ necessรกrio usar o GhostDriver. Motorista Fantasma รฉ uma implementaรงรฃo do protocolo Webdriver Wire em JS simples para PhantomJS.
A รบltima versรฃo do PhatomJS tem integrado GhostDriver e nรฃo hรก necessidade de instalรก-lo separadamente.
Aqui estรก como o sistema funciona-
Passos para executar Selenium com PhatomJS
Passo 1) Vocรช precisa Eclipse com Selenium instalado
Passo 2) Baixar PhantomJS aqui.
Passo 3) Extraia a pasta baixada para Arquivos de Programas
Passo 4) Baixe o driver PhantomJS em aqui.. Adicione o jar ao seu projeto
Passo 5) Cole o seguinte cรณdigo no eclipse
package htmldriver;
import java.io.File;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
public class phantom {
public static void main(String[] args) {
File file = new File("C:/Program Files/phantomjs-2.0.0-windows/bin/phantomjs.exe");
System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Guru99");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
Passo 6) Execute o cรณdigo. Vocรช observarรก que a saรญda รฉ mostrada no console e nenhum navegador รฉ iniciado.
NOTA: na primeira execuรงรฃo, com base nas suas configuraรงรตes, vocรช poderรก receber um aviso de seguranรงa do Windows para permitir a execuรงรฃo do PhantomJS. Clique em Permitir acesso.
Muitas organizaรงรตes usam Phantom.JS para diversos fins, por exemplo,
- Teste sem cabeรงa
- Screen Capture
- Automaรงรฃo de pรกgina
- Rede de Monitorizaรงรฃo
- Para renderizar capturas de tela do painel para seus usuรกrios
- Para executar testes de unidade na linha de comando
- Para gerar manuais de funcionรกrios de HTML para PDF
- Combinado com QUnit para o conjunto de testes
Resumo
Para testar o aplicativo rapidamente em vรกrios navegadores e sem qualquer interrupรงรฃo visual, navegador headless Testes รฉ usado. Devido ร sua velocidade, precisรฃo e recursos de fรกcil acesso, o driver de unidade HTML e o PhantomJS estรฃo ganhando popularidade para testes de automaรงรฃo de navegador sem cabeรงa. Seguindo alguns passos simples vocรช saberรก como essas ferramentas podem ser facilmente integradas com outras ferramentas e executar o cรณdigo de teste.






