Webdriverio: Documente como migrar de comandos obsoletos, como "chaves" ou "enviar"

Criado em 17 mai. 2017  ·  22Comentários  ·  Fonte: webdriverio/webdriverio

O problema

Novos avisos do WebdriverIO começaram a aparecer recentemente, sem explicação de como resolvê-los. Isso parece ter sido aplicado de forma inconsistente (alguns têm instruções, outros não) em https://github.com/webdriverio/webdriverio/commit/8b12008ca8280411984c271366fb3c8da8a66ddb

Por exemplo, com o que devo substituir keys ou submit ?

lots of new warnings

Meio Ambiente

  • Versão do WebdriverIO: ^4.0.4 (via https://github.com/mongodb-js/hadron-spectron/blob/d08c763/package.json#L42 -> https://github.com/electron/spectron/ blob/0ed376ef001a62cb7a50d2d730ede4626af17393/package.json#L27 )
  • Versão do Node.js: 7.4.0 (para ser emparelhado com o Electron )
  • Modo autônomo ou wdio testrunner : Não tenho certeza, provavelmente o que o Spectron faz fora da caixa.
  • se wdio testrunner, executando testes síncronos ou assíncronos:
  • Pacotes wdio adicionais usados ​​(se aplicável):

Detalhes

N/A - Só gostaria de documentos melhores, obrigado 👍

Link para logs do Selenium/WebdriverIO

N/A - Só gostaria de documentos melhores, obrigado 👍

Código para reproduzir o problema [ bom ter ]

N/A - Só gostaria de documentos melhores, obrigado 👍

Comentários muito úteis

7 meses com esses avisos. Podemos removê-los agora e adicioná-los novamente assim que houver um plano de migração 🙏.

Todos 22 comentários

@pzrq na verdade ainda não sabemos como substituiríamos o comando keys . Ele não será removido da API WebdriverIO até que haja uma substituição, portanto, não leve esse aviso muito a sério. Participe também do nossoGitter para este tipo de perguntas. Isso não é necessário um problema.

Obrigado pela informação @christian-bromann

Eu discordo, pois acho que ele falha em cobrir o requisito since it has been superseded de descontinuar o código de produção , mas realmente não me importo o suficiente com as dezenas de mensagens de spam de aviso que o pacote está recebendo nesta área para enviá-lo, muitas outras áreas de dívida técnica para resolver.

Muitas vezes outras formas de testes como testes enzimáticos acabam sendo mais práticos e fáceis de trabalhar para nossa equipe.

Desculpe, ocorreu-me no caminho para casa que esqueci de incluir um exemplo positivo de como eu esperava que algo assim fosse feito, um bom recentemente foi o React do Facebook introduzindo novos avisos de depreciação, por exemplo We never add warnings without providing an incremental path forward. , esperança que ajuda no futuro:
https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#new -deprecation-warnings

obrigado pelo feedback @pzrq. Concordo totalmente com você e tentarei fornecer essas informações para esses comandos.

Existe alguma maneira de suprimir o aviso? Eu configurei logLevel para silencioso, mas isso não faz diferença.

@Godsmith apenas use v4.7.x que não contém esses avisos

Ok, vai servir, obrigado.

@christian-bromann Eu estava usando a v4.8 e fiz o downgrade, mas ainda mostra os alertas.
Estou usando o projeto pepino-boilerplate

Certifique-se de usar a versão com downgrade. Essas mensagens foram introduzidas na v4.8

Remova este aviso até que haja um caminho a seguir.

FWIW, não consegui fazer o downgrade para o WDIO 4.7, então aqui está a solução um pouco frágil que usei:

/**
 * WebDriverIO 4.8.0 outputs all kinds of "deprecation" warnings
 * for common commands like `keys` and `moveToObject`.
 * According to https://github.com/Codeception/CodeceptJS/issues/531,
 * these deprecation warnings are for Firefox, and have no alternative replacements.
 * Since we can't downgrade WDIO as suggested (it's Spectron's dep, not ours),
 * we must suppress the warning with a classic monkey-patch.
 * 
 * <strong i="6">@see</strong> webdriverio/lib/helpers/depcrecationWarning.js
 */
// Filter out the following messages:
const wdioDeprecationWarning = /^WARNING: the "\w+" command will be depcrecated soon./; // [sic]
// Monkey patch:
const warn = console.warn;
console.warn = function suppressWebdriverWarnings(message) {
  if (message.match(wdioDeprecationWarning)) return;
  warn.apply(console, arguments);
};

É uma espécie de aviso inútil se não houver nenhuma ação que você possa tomar. É apenas barulho. Ele deve ser removido até que você dê às pessoas uma alternativa.

@scottrippey obrigado por compartilhar seu trecho, isso é bastante útil!

@christian-bromann você estaria aberto a remover os avisos até que haja alternativas válidas?

você estaria aberto a remover os avisos até que haja alternativas válidas?

Prefiro publicar a alternativa

7 meses com esses avisos. Podemos removê-los agora e adicioná-los novamente assim que houver um plano de migração 🙏.

+100 para @oliviertassinari

Sim, por favor remova o aviso. Apenas me roubou 2 minutos :-)

Alguma atualização sobre isso, pessoal? Seria muito apreciado remover este aviso por enquanto. Ou, pelo menos, deixe-nos saber de outra alternativa que podemos usar.

Prefiro publicar a alternativa

Esta é uma filosofia bastante quebrada de desenvolvimento de software. Aqui estão algumas alternativas enquanto esperamos:

https://github.com/DevExpress/testcafe

https://github.com/GoogleChrome/puppeteer

@rmngrc estamos trabalhando ativamente na v5 que substitui a implementação desses comandos usando o comando action que é novo na especificação do Webdriver. Não podemos corrigir drivers de navegador que ainda não suportam a especificação mais recente. Além disso, @rmngrc @nylen , quero enfatizar que este é um projeto de código aberto. Se você acha que algo pode ser melhorado, forneça um PR! O WebdriverIO não é feito por uma empresa, todo mundo que está trabalhando nisso faz isso em seu tempo livre.

Por último, mas não menos importante, a versão mais recente permite desativar esses avisos.

Solução aplicada para Spectron (que usa webdriverio) conforme mencionado em: https://github.com/electron/spectron/issues/286#issuecomment -393393514 e resolveu meu problema que estava pendente há muito tempo.

this.app = new Application({
     path: fullPath,
     args: ['.'],
     webdriverOptions: {
        "deprecationWarnings": false
}});
Esta página foi útil?
0 / 5 - 0 avaliações