1.0.2-alpha.0 • Published 2 years ago

@concordialang-healer/heuristics-web v1.0.2-alpha.0

Weekly downloads
-
License
AGPL-3.0
Repository
github
Last release
2 years ago

npm (tag)

@concordialang-healer/heuristics-web

🔌 Heurísticas para concordialang-healer

Fornece plugins de heurísticas para utilizar em conjunto com concordialang-healer.

São heurísticas para interface HTML.

Instalação

Instale pelo npm:

npm install @concordialang-healer/heuristics-web --save-dev

👉 Obs.: Você também pode instalar pelo yarn.

Configuração

Adicione as entradas na configuração do concordialang-healer (geralmente .healerrc.json):

{
  "heuristics": [
    {
      "name": "by-id",
      "from": "@concordialang-healer/heuristics-web"
    },
    {
      "name": "by-classes",
      "from": "@concordialang-healer/heuristics-web"
    },
    {
      "name": "by-attributes",
      "from": "@concordialang-healer/heuristics-web"
    },
    {
      "name": "by-tag",
      "from": "@concordialang-healer/heuristics-web"
    },
    {
      "name": "by-xpath",
      "from": "@concordialang-healer/heuristics-web"
    },
    {
      "name": "by-text",
      "from": "@concordialang-healer/heuristics-web"
    }
  ]
}

Heurísticas

NomeDescrição
by-idBusca pela propriedade id
by-classesBusca por cada uma das propriedades class do elemento
by-attributesBusca pelos demais atributos além de id e class
by-tagBusca pela tag
by-xpathBusca pelo xpath (localização)
by-textBusca elementos com a mesma tag e conteúdo textual (textContent)

Os pesos distrbuidos pelas heurísticas aos elementos são calculados com a base na quantidade de elementos encontrados:

1 / quantidade_de_elementos_encontrados

Exemplo

Supondo que estamos procurando o elemento username na interface abaixo

<body>
  <h1>Exemplo</h1>
  <form>
    <input name="username" id="username" />
    <input name="password" id="password" />
    <button>ok</button>
  </form>
</body>

Heurística by-tag

  • Procura pelos elementos com a tag input na interface
querySelectorAll('input');
  • Dois elementos serão encontrados
  • Atribui peso 0.5 para cada um deles