Selenium Core Extensions (User-Extensions.js)

Índice:

Anonim

Para entender as extensões, vamos primeiro entender os três pilares do selênio IDE

  1. Ação: qual operação você está executando na tela da IU

  2. Avaliadores / Asserção: Qual verificação você faz nos dados que obtém da IU

  1. Estratégia do localizador: como podemos encontrar o elemento na IU.

Agora, o Selenium IDE tem uma biblioteca muito madura com muitas ações, afirmações / assessores e estratégias de localização.

Mas às vezes precisamos adicionar mais algumas funcionalidades a ele para os nossos requisitos de projeto. Nessa situação, podemos expandir esta biblioteca adicionando nossas extensões personalizadas. Essas extensões personalizadas são chamadas de 'Extensão de usuário'.

Por exemplo, precisamos de uma Ação que pode converter o texto em maiúsculas antes de preenchê-lo em um elemento da web. Você não pode encontrar esta ação na biblioteca de ações padrão. Nesse caso, você pode criar sua própria 'Extensão de usuário'. Neste tutorial, aprenderemos como criar uma extensão de usuário para converter texto em maiúsculas

Requisito para criar extensão de usuário Selenium:

Para criar uma extensão de usuário para o Selenium IDE, precisamos conhecer o conceito básico de JavaScript e o conceito de objeto de protótipo Java Script.

Para criar sua extensão de usuário, você precisa criar métodos de script Java e adicioná-los ao protótipo do objeto selenium e ao protótipo do objeto PageBot.

Como o Selenium IDE reconhece a extensão do usuário?

Depois de adicionar a extensão do usuário ao Selenium IDE quando iniciamos o Selenium IDE, todas essas extensões no protótipo javascript são carregadas e o Selenium IDE as reconhece por seus nomes.

Como criar uma extensão de usuário

Etapa 1) Ação - todas as ações são iniciadas por "do", ou seja, se a ação for para texto em maiúsculas, seu nome será doTextUpperCase. Quando adicionamos este método de ação no Selenium IDE, o Selenium IDE criará um método de espera para esta ação. Portanto, neste caso, quando criamos a ação doTextUpperCase , o Selenium IDE criará uma função de espera correspondente como TextUpperCaseAndWait . Pode aceitar dois parâmetros

Exemplo: ação de texto em maiúsculas

Selenium.prototype.doTextUpperCase = function (localizador, texto) {// Aqui, findElement é ele próprio capaz de lidar com todos os tipos de localizador (xpath, css, name, id, className), só precisamos passar o texto do localizadorelemento var = this.page (). findElement (localizador);// Crie o texto para digitartext = text.toUpperCase ();// Substitua o texto do elemento pelo novo textothis.page (). replaceText (elemento, texto);};

Etapa 2) Avaliadores / Asserção - Todos os avaliadores registrados no protótipo do objeto de selênio terão um prefixo

por "obter" ou "é" Ex. getValueFromCompoundTable, isValueFromCompoundTable. Ele pode aceitar dois parâmetros, um para o destino e outro para o campo de valor no caso de teste.

Para cada avaliador, haverá funções de verificação correspondentes prefixadas por "verificar", "afirmar" e o prefixo da função de espera por "waitFor"

Exemplo: Para avaliadores de letras maiúsculas

Selenium.prototype.assertTextUpperCase = function (localizador, texto) {// Todas as estratégias do localizador são tratadas automaticamente por "findElement"elemento var = this.page (). findElement (localizador);// Crie o texto para verificartext = text.toUpperCase ();// Obtenha o valor real do elementovar actualValue = element.value;// Certifique-se de que o valor real corresponde ao esperadoAssert.matches (expectValue, actualValue);};Selenium.prototype.isTextEqual = function (localizador, texto) {return this.getText (locator) .value === text;};Selenium.prototype.getTextValue = function (localizador, texto) {return this.getText (locator) .value;};

Etapa 3) Estratégia do localizador - se desejarmos criar nossa própria função para localizar um elemento, então

precisamos estender o protótipo do PageBot com uma função com o prefixo "locateElementBy".

Terá dois parâmetros, o primeiro será a string localizadora e o segundo será o documento

onde ele precisa ser pesquisado.

Exemplo: para localizador de texto em maiúsculas

// O "inDocument" é um documento que você está pesquisando.PageBot.prototype.locateElementByUpperCase = function (text, inDocument) {// Crie o texto a ser pesquisadovar valor esperado = text.toUpperCase ();// Faça um loop por todos os elementos, procurando aqueles que têm// um valor === nosso valor esperadovar allElements = inDocument.getElementsByTagName ("*");// Esta estrela '*' é um tipo de expressão regular que passará por todos os elementos (no HTML DOM, cada elemento certamente tem um nome de tag como , ,

, , ,
etc.). Aqui, nosso motivo é encontrar um elemento que corresponda ao texto em maiúsculas que passamos, então vamos pesquisá-lo com todos os elementos e, quando encontrarmos a correspondência, teremos o elemento da web correto.para (var i = 0; i

Como usar a extensão de núcleo recém-criada?

  1. Vá para Selenium IDE

    Clique em Opções -> Opções…

  1. Na seção Geral, selecione a localização da Extensão Selenium Core recém-criada

  2. Clique em OK e reinicie o Selenium IDE

  1. Você encontrará a extensão na lista de comandos

Aqui está uma lista de extensões / plug-ins populares usados ​​no Selenium IDE

Nome Propósito
Favoritos Para marcar um conjunto de testes como favorito e executá-los com um clique
Flex Pilot X Para automação baseada em Flex
FlexMonkium Para gravação baseada em Adobe Flex e testes de reprodução em Selenium IDE
Registro de arquivos Para salvar registros em um arquivo
Controle de fluxo Para controlar o fluxo de execução do teste
Elementos de destaque Para destacar um controle da web
Espera implícita Para esperar por um elemento por certo limite de tempo
ScreenShot em caso de falha Faça uma captura de tela em caso de falha
Resultado dos testes Salve o resultado do caso de teste para uma suíte de teste com um clique

Você pode obter tudo isso e muito mais na seção de download do site oficial do SeleniumHQ

http://docs.seleniumhq.org/download/

Resumo:

  • Há três partes do Selenium IDE: Ação, Assessores / Asserção e Estratégia do localizador.
  • A extensão do usuário é criada quando o Selenium IDE não está atendendo ao requisito atual.
  • Para criar a extensão do usuário, é necessário adicionar javascript ao protótipo de objeto do selenium.
  • Após a criação da extensão, é necessário adicioná-la ao Selenium IDE e reiniciar o IDE.

Baixe a extensão do núcleo do Selenium usada neste tutorial