Eu tenho um conjunto de testes de selênio que executa muitos testes e, a cada novo teste, ele abre uma janela do navegador sobre qualquer outra janela que eu abra. Muito chocante enquanto trabalha em um ambiente local. Alguma maneira de dizer ao selênio ou ao sistema operacional (MAC) para abrir as janelas em segundo plano?
selenium
selenium-webdriver
webdriver
selenium-grid
kevzettler
fonte
fonte
driver = webdriver.Firefox()
em seu código, siga a minha resposta aqui: stackoverflow.com/a/23898148/1515819Respostas:
Existem algumas maneiras, mas não é um simples "definir um valor de configuração". A menos que você invista em um navegador sem cabeça, que não atende aos requisitos de todos, é um pouco complicado:
Como ocultar a janela do Firefox (Selenium WebDriver)?
e
É possível ocultar o navegador no Selenium RC?
Você pode "supostamente" passar alguns parâmetros para o Chrome, especificamente:
--no-startup-window
Observe que para alguns navegadores, especialmente o IE, os testes serão prejudicados por não serem executados em foco.
Você também pode invadir um pouco com o AutoIT, para ocultar a janela quando ela for aberta.
fonte
Se você estiver usando o driver da web Selenium com Python, poderá usar o PyVirtualDisplay, um wrapper Python para Xvfb e Xephyr.
O PyVirtualDisplay precisa do Xvfb como uma dependência. No Ubuntu, primeiro instale o Xvfb:
em seguida, instale o PyVirtualDisplay a partir do Pypi:
Exemplo de script Selenium em Python no modo sem cabeça com PyVirtualDisplay:
EDIT A resposta inicial foi publicada em 2014 e agora estamos no auge de 2018. Como todo o resto, os navegadores também avançaram. Agora, o Chrome tem uma versão completamente decapitada que elimina a necessidade de usar bibliotecas de terceiros para ocultar a janela da interface do usuário. O código de exemplo é o seguinte:
fonte
O Chrome 57 tem uma opção para passar a bandeira --headless, o que torna a janela invisível.
Esse sinalizador é diferente da --no-startup-window, pois o último não inicia uma janela. É usado para hospedar aplicativos em segundo plano, como diz esta página .
Código Java para passar o sinalizador para o Selenium webdriver (ChromeDriver):
fonte
Para executar sem nenhum navegador, você pode executá-lo no modo sem cabeça .
Eu mostro um exemplo em Python que está funcionando para mim agora
Também adiciono um pouco mais de informações sobre isso no site oficial do Google https://developers.google.com/web/updates/2017/04//headless-chrome
fonte
Desde o Chrome 57, você tem o argumento decapitado:
O modo sem cabeça do Chrome executa 30,97% melhor que a versão da interface do usuário. O outro driver sem cabeça PhantomJS oferece 34,92% melhor que o modo sem cabeça do Chrome.
PhantomJSDriver
O modo sem cabeça do Mozilla Firefox executa 3,68% melhor que a versão da interface do usuário. Isso é uma decepção, já que o modo sem cabeça do Chrome alcança um tempo> 30% melhor que o da interface do usuário. O outro driver sem cabeça PhantomJS oferece 34,92% melhor que o modo sem cabeça do Chrome. Surpreendentemente para mim, o navegador Edge supera todos eles.
Está disponível no Firefox 57+
O modo sem cabeça do Mozilla Firefox executa 3,68% melhor que a versão da interface do usuário. Isso é uma decepção, já que o modo sem cabeça do Chrome alcança um tempo> 30% melhor que o da interface do usuário. O outro driver sem cabeça PhantomJS oferece 34,92% melhor que o modo sem cabeça do Chrome. Surpreendentemente para mim, o navegador Edge supera todos eles.
fonte
Sugiro usar o Phantom Js para obter mais informações que você precisa visitar o site oficial do Phantom
depois de baixar PhantomJs.exe você precisa importar para o seu projeto como você pode ver na imagem abaixo PhantomJS está dentro comum >> Biblioteca >> phantomjs.exe
Agora tudo que você precisa dentro do seu código Selenium é mudar a linha
Para algo como
É isso, funcionou para mim. e definitivamente ele trabalhará para você, Saúde
fonte
No Windows, você pode usar o win32gui:
Exemplo:
No entanto, há um problema com esta solução - o uso do método send_keys faz a janela aparecer. Você pode lidar com isso usando javascript, que não mostra a janela:
fonte
Eu usei esse código para o Firefox no Windows e obtive a resposta: (referência aqui )
Mas não testo para outros navegadores.
fonte
Pode estar em opções. Aqui está o código java idêntico.
fonte
Esta é uma solução simples do NodeJS que funciona na nova versão 4.x (talvez também 3.x) do Selenium.
Cromada:
Raposa de fogo:
A coisa toda é executada em segundo plano. Exatamente o que queremos.
fonte
Se você estiver usando o driver chrome, poderá usar este código muito simples: (funcionou para mim)
fonte
No * nix, você também pode executar um servidor X sem cabeça como o Xvfb e apontar a variável DISPLAY para ele:
Servidor X falso para teste?
fonte
Aqui está uma solução .net que funcionou para mim:
Faça o download do PhantomJs aqui http://phantomjs.org/download.html
Copie o .exe da pasta bin no download e cole na pasta bin debug / release do seu projeto do Visual Studio.
Adicione isso usando
No seu código, abra o driver assim:
fonte
Se você estiver usando o Ubuntu (Gnome), uma solução alternativa simples é instalar a extensão auto-move-window da extensão Gnome: https://extensions.gnome.org/extension/16/auto-move-windows/
Em seguida, defina o navegador (por exemplo, Chrome) para outro espaço de trabalho (por exemplo, espaço de trabalho 2). O navegador será executado silenciosamente em outro espaço de trabalho e não o incomodará mais. Você ainda pode usar o Chrome no seu espaço de trabalho sem interrupção.
fonte
oi eu tive o mesmo problema com meu chromedriver usando python e options.add_argument ("headless") não funcionou para mim, mas então eu percebi como corrigi-lo, então eu o trago no código abaixo
Espero que funcione para você.
fonte
Uma maneira de conseguir isso é executando o navegador no modo sem cabeça. Outra vantagem disso é que os testes são executados mais rapidamente.
Encontre o código abaixo para definir o modo sem cabeça no navegador Chrome.
fonte