Eu quero testar o upload de arquivos usando um teste angularjs e2e. Como você faz isso nos testes e2e? Eu executo meu script de teste através do karma grunt
angularjs
file
file-upload
gruntjs
protractor
Pawan Singh
fonte
fonte
Respostas:
É assim que eu faço:
path
módulo para resolver o caminho completo do arquivo que você deseja carregar.Isso não funcionará no firefox. O transferidor reclamará porque o elemento não está visível. Para fazer o upload no Firefox, você precisa tornar a entrada visível. Isto é o que eu faço:
fonte
__dirname
às vezes aponta para um diretório temporário (provavelmente onde os testes são copiados pelo executor de testes). Você pode usar emprocess.cwd()
vez de__dirname
se for o caso.Você não pode diretamente.
Por motivos de segurança, você não pode simular um usuário que está escolhendo um arquivo no sistema dentro de um conjunto de testes funcionais como o ngScenario.
Com o Protractor, por ser baseado no WebDriver, deve ser possível usar este truque
Isso funciona muito bem:
fonte
Aqui está uma combinação do conselho de Andres D e davidb583 que teria me ajudado enquanto eu trabalhava nisso ...
Eu estava tentando fazer com que os testes do transferidor fossem executados nos controles de fluxo.
fonte
Isso está funcionando para mim.
fonte
Isso é o que eu faço para carregar o arquivo no firefox, este script torna o elemento visível para definir o valor do caminho:
fonte
Percebi que a entrada do arquivo no aplicativo da web que estou testando só é visível no Firefox quando é rolada para a visualização usando JavaScript, então adicionei scrollIntoView () no código de Andres D para fazê-lo funcionar para meu aplicativo:
(Também removi todos os estilos do elemento de entrada do arquivo)
fonte
// Para fazer upload de um arquivo de C: \ Directory
{
};
fonte
fileToUpload
?as soluções documentadas atuais funcionariam apenas se os usuários estivessem carregando o jQuery. Em todas as situações, os usuários receberão um erro como: Falha: $ não está definido
Eu sugeriria documentar uma solução usando o código angularjs nativo.
por exemplo, eu sugeriria em vez de sugerir:
sugerir:
o último é mais padrão, acima do angular e mais importante, não requer jquery
fonte