Teste de Behat / Mink / Selenium quebrado (macOS)

Uso o Selenium há algum tempo para testes automatizados de navegadores. Eu nunca descobri como fazê-lo funcionar em outra coisa que não o Firefox. Bem, agora o FireFox será lançado, mas não será puxado para a frente e apenas fica lá e não faz nada. Sinto que é porque o FireFox se atualizou.

Estou executando o macOS Sierra. Eu instalei e habilitei a extensão WebDriver 2.48 no Safari.

Fiz o download e tentei o selenium-server-standalone-2.53.1.jar e o selenium-server-standalone-3.0.0-beta4.jar, mas obtenho resultados diferentes de cada um. Com o 2.53.1 e o Firefox 49, ele lança o Firefox, mas como mencionado, ele fica lá e não faz nada, nem carrega uma URL. Eventualmente, atinge o tempo limite com o seguinte erro:

Não foi possível abrir a conexão: não foi possível conectar ao host 127.0.0.1 na porta 7055 após 45000 ms. Saída do console do Firefox: 08198ce6fd} "," syncGUID ":" mT5F_TRS51sP "," location ":" app-global "," version ":" 49.0.1 "," type ":" theme "," internalName ":" classic /1.0","updateURL":null,"updateKey":null,"optionsURL":null,"optionsType":null,"aboutURL":null,"icons":{"32":"icon.png "," 48 ":" icon.png "}," iconURL ": null," icon64URL ": null," defaultLocale ": {" name ":" Default "," description ":" O tema padrão. "," Criador ": "Mozilla", "homepageURL": null, "contributors": ["Mozilla Contribuintes"]}, "visible": true, "active": true, "userDisabled": false, "appDisabled": false, "descritor": "/Applications/Firefox.app/Contents/Resources/browser/extensions/{972ce4c6-7e08-4474-a285-3208198ce6fd}.xpi","installDate":1475253044000,"updateDate":1475253044000,"applyBackground1," skinnable ": true," size ": 7140," sourceURI ": null," releaseNotesURI ": null," softDisabled ": false," ForeignInstall ": false," hasBinaryComponents ": false," strictCompatibility ": true," locales " : [], "targetApplications": [{"id": "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}", "minVersion": "49 .0.1 "," maxVersion ":" 49.0.1 "}]," targetPlatforms ": []," seen ": true} 1475260611275 addons.xpi DEBUG getModTime: Varredura recursiva de {972ce4c6-7e08-4474-a285-3208198ce6fd} 1475260611276 DeferredSave.extensions.json DEBUG Salvar alterações 1475260611277 addons.xpi DEBUG Atualizando o banco de dados com alterações nos complementos instalados 1475260611277 addons.xpi-utils DEBUG Atualizando estados de complementos 1475260611277 addons.xpi-utils DEBUG Escrevendo os add-ons 7975. xpi DEBUG Registrando manifesto para /Applications/Firefox.app/Contents/Resources/browser/features/[email protected] 1475260611279 addons.xpi DEBUG Chamando a inicialização do método de inicialização em [email protected] versão 1.2 1475260611279 addons.xpi manifesto para /Applications/Firefox.app/Contents/Resources/browser/features/[email protected] 1475260611280 addons.xpi DEBUG Chamando a inicialização do método de inicialização em [email protected] versão 1.0.4 1475260611280 addons.xpi DEBUG Registrando manifesto para / Aplicativos / Firefox .app / Conteúdo / Recursos / navegador / recursos / webcompat @ mozilla.org.xpi 1475260611281 addons.xpi DEBUG Chamando a inicialização do método de inicialização em [email protected] versão 1.0 1475260611284 addons.manager DEBUG Registrando o bloqueador de desligamento para o XPIProvider 1475260611284 addons.manager Inicialização concluída do provedor: XPIProvider 1475260611284 addons.manager DEBUG Provedor inicial: LightweightThemeManager 1475260611284 addons.manager DEBUG Registrando o bloqueador de desligamento para o LightweightThemeManager 1475260611285 addons.manager DEBUG Provedor finalizado: LightweightThemeManager 1475260611285 bloqueador para GMPProvider 1475260611294 addons.manager DEBUG O provedor concluiu a inicialização: GMPProvider 1475260611294 addons.manager DEBUG Fornecedor inicial: PluginProvider 1475260611295 addons.manager DEBUG Registrando o bloqueador de desligamento para o plug-in DEVID 1475260611295 addons.manager inicialização iniciada: PluginProvider 1475260611295 addons.manager DEBUG Sequência de inicialização concluída 1475260611717 addons.manager DEBUG Provedor inicial: 1475260611717 addons.manager DEBUG Registrando o bloqueador de desligamento para 1475260611718 addons.manager DEBUG O provedor de DEBUG terminou a inicialização: 14752606117. repositório DEBUG Nenhum addons.json encontrado. 1475260611881 DeferredSave.addons.json DEBUG Salvar alterações 1475260611884 DeferredSave.addons.json DEBUG Temporizador inicial 1475260611917 addons.manager DEBUG Provedor inicial: PreviousExperimentProvider 1475260611918 addons.manager DEBUG Registado shutdownman149 DEBUG extensions.json Gravação de DEBUG concluída com êxito 1475260611924 addons.xpi-utils DEBUG Banco de dados XPI salvo, definindo a preferência de versão do esquema para 17 1475260611942 DeferredSave.addons.json DEBUG Iniciando a gravação 1475260611957 DeferredSave.addons.json DEBUG com gravação com êxito (Behat \ Exception \ MEx-driver \ BeEx \ Exception)

Com 3.0.0-beta-4, ele nem lança o Firefox, apenas lança o seguinte erro:

Não foi possível abrir a conexão: O caminho para o executável do driver deve ser definido pela propriedade do sistema webdriver.gecko.driver; Para mais informações, vejahttps://github.com/mozilla/geckodriver. A versão mais recente pode ser baixada emhttps://github.com/mozilla/geckodriver/releases (Behat \ Mink \ Exception \ DriverException)

Se eu mudar debehat.yml config para usar o Safari (browser_name: safari), com o 2.53.1, ele lança uma instância do Safari que também não vem à frente nem faz nada (como o Firefox) e recebo o seguinte erro:

Comando desconhecido: {"id": "f3xi7h2t2u16", "name": "mouseMoveTo", "parameters": {"element": ": wdc: 1475260954832"}} (AVISO: O servidor não forneceu informações sobre o rastreamento de pilha) duration ou timeout: 5 milliseconds Informações da versão: '2.53.1', revisão: 'a36b8b1', time: '2016-06-30 17:37:03' Informações do sistema: host: 'flightbyte.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10 .12 ', java.version:' 1.8.0_101 'Informações do driver: org.openqa.selenium. Recursos do safari.SafariDriver [{browserName = safari, takesScreenshot = true, javascriptEnabled = true, versão = 10.0, cssSelectorsEnabled = true, plataforma = MAC, secureSsl = true}] ID da sessão: null (WebDriver \ Exception \ UnknownError)

Com 3.0.0-beta4 eu recebo ...

Não foi possível abrir a conexão: nulo (AVISO: O servidor não forneceu informações sobre o rastreamento de pilha) Duração ou tempo limite do comando: 0 milissegundos Informações de compilação: versão: '3.0.0-beta4', revisão: '3169782', hora: '2016-09 -29 10:29:23 -0700 'Informações do sistema: host:' myapp.local ', ip:' 127.0.0.1 ', os.name:' Mac OS X ', os.arch:' x86_64 ', os.version : '10 .12 ', java.version:' 1.8.0_101 'Informações do driver: driver.version: SafariDriver (Behat \ Mink \ Exception \ DriverException)

Em todos os casos acima, simplesmente abro o arquivo .jar do servidor independente e, em seguida, executei meus testes de behat, como sempre fiz. Hoje, acho que descobri como fazer o chomedriver funcionar. Portanto, ao tentar usá-lo com o chrome, inicio-o dessa maneira ...

java -jar -Dwebdriver.chrome.driver='/Users/me/bin/selenium/drivers/chromedriver' /Users/me/bin/selenium/selenium-server-standalone-2.53.1.jar

... e eu mudo obrowser_name chave na minhabehat.yml paragooglechrome. Quando o executo dessa maneira, recebo o seguinte erro ...

Não foi possível abrir a conexão: o melhor provedor de driver correspondente org.openqa.selenium.safari.SafariDriver não pode criar uma nova instância de driver para os Recursos [{browser = firefox, name = Conjunto de recursos Behat, browserName = googlechrome, ignoreZoomSetting = false, tags = [myapp.local, PHP 7.0.10]}] Informações da compilação: versão: '2.53.1', revisão: 'a36b8b1', hora: '2016-06-30 17:37:03' Informações do sistema: host: ' myapp.local ', ip:' 127.0.0.1 ', os.name:' Mac OS X ', os.arch:' x86_64 ', os.version: '10 .12', java.version: '1.8.0_101' Informações do driver : driver.version: unknown (Behat \ Mink \ Exception \ DriverException)

E com 3.0.0-beta4 eu recebo o seguinte:

Não foi possível abrir a conexão: o melhor provedor de driver correspondente org.openqa.selenium.safari.SafariDriver não pode criar uma nova instância de driver para os Recursos [{browser = firefox, name = Conjunto de recursos Behat, browserName = googlechrome, ignoreZoomSetting = false, tags = [flightbyte.local, PHP 7.0.10]}] Informações da compilação: versão: '3.0.0-beta4', revisão: '3169782', hora: '2016-09-29 10:29:23 -0700' Informações do sistema : host: 'flightbyte.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10 .12 ', java.version:' 1.8. 0_101 'Informações do driver: driver.version: unknown (Behat \ Mink \ Exception \ DriverException)

Meu behat.yml começa assim:

default:
  extensions:
    Laracasts\Behat:
      env_path: .env.testing
    Behat\MinkExtension:
      default_session: laravel
      base_url: <a href="http://myapp.local:8080/" rel="nofollow">http://myapp.local:8080/</a>
      browser_name: googlechrome (this is where I switch browsers)
      laravel: ~
      selenium2: ~

Meu compositer.json contém isso:

"require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~5.4",
    "phpspec/phpspec": "~2.1",
    "behat/behat": "^3.2",
    "behat/mink": "^1.7",
    "behat/mink-extension": "^2.2",
    "laracasts/behat-laravel-extension": "dev-master",
    "behat/mink-selenium2-driver": "^1.3@dev",
    "symfony/dom-crawler": "~3.0",
    "symfony/css-selector": "~3.0"
  },

Tentei ajustar as versões do behat and mink stuff ao que vi no packagist, seguido pela atualização do compositor.

Eu só preciso fazer esses testes funcionarem novamente. Eu realmente não me importo com o navegador, preferiria que não fosse o Firefox, mas é com isso que vivi até que tudo quebrou.

Qualquer ajuda seria muito apreciada!

questionAnswers(2)

yourAnswerToTheQuestion