Drivers¶
Como é que o Mink fornece uma API consistente para vários tipos de bibliotecas
de navegadores diferentes, frequentemente escritas em diferentes linguagens?
Através dos drivers! Um driver Mink é uma classe simples, que implementa
Behat\Mink\Driver\DriverInterface
. Esta interface descreve metodos pontes
entre o Mink e os emuladores de navegadores reais. Ele não sabe nada sobre como
inicar/parar ou analisar uma página nesse emulador de navegador em particular. Ele
somente sabe que método do driver que deve chamar para fazer isso.
O Mink vem com seis drivers fora da caixa:
Suporte a recursos do driver¶
Apesar do Mink fazer o seu melhor em remover as diferenças entre navegador e
diferentes emuladores de navegador, ele não pode fazer muito em alguns casos.
Por exemplo, BrowserKitDriver não avalia JavaScript e Slenium2Driver não consegue
pegar código dos status das respostas. Nestes casos, o driver sempre irá lançar
uma exceção Behat\Mink\Exception\UnsupportedDriverActionException
.
Funcionalidade | BrowserKit/Goutte | Selenium2 | Zombie | Selenium | Sahi |
---|---|---|---|---|---|
Atravessar páginas | Sim | Sim | Sim | Sim | Sim |
Manipular Formulários | Sim | Sim | Sim | Sim | Sim |
Autenticação Básica HTTP | Sim | Não | Sim | Não | Não |
Gestão de janelas | Não | Sim | Não | Sim | Sim |
Gestão de iFrames | Não | Sim | Não | Sim | Não |
Acessar cabeçalhos de solicitação | Sim | Não | Sim | Não | Não |
Cabeçalhos de resposta | Sim | Não | Sim | Não | Não |
Manipular Cookies | Sim | Sim | Sim | Sim | Sim |
Acessar códgigo de status | Sim | Não | Sim | Não | Não |
Manipular mouse | Não | Sim | Sim | Sim | Sim |
Arrastar e largar | Não | Sim | Não | Sim | Sim |
Ações de teclado | Não | Sim | Sim | Sim | Sim |
Visualizar elementos | Não | Sim | Não | Sim | Sim |
Avaliar JS | Não | Sim | Sim | Sim | Sim |
Redimensionar janela | Não | Sim | Não | Não | Não |
Maximizar janela | Não | Sim | Não | Sim | Não |