Problème d'audit avec les URL du type /#/ (Angular, ...)

audit-de-page
url
angular
Tags: #<Tag:0x00007fe7b4d54910> #<Tag:0x00007fe7b4d54668> #<Tag:0x00007fe7b4d54320>

#1

Sur la démo d’Asqatasun, un audit d’une page utilisant Angular était toujours en échec. @mfaure a aussi rencontré le même problème avec de l’Angular 2.

L’URL en question :
http://revillweb.github.io/angularjs-by-example/#/

Pour les plus pressés, Asqatasun audite très bien cette URL,
mais il faut lui fournir une URL sans le #/ à la fin.

Pour des URL plus complexe, comme /angularjs-by-example/#/popular, il faudra donc s’orienter vers un audit de scénario avec comme 1er URL /angularjs-by-example/ et ensuite utiliser “clickElement” dans le fichier JSON de scénario. Exemple de fichier JSON à la fin de ce message.

1er piste : la version ESR de Firefox

La première piste explorée fut de vérifier si cette URL fonctionnait avec la version ESR de Firefox actuellement utilisé par Asqatasun.

La réponse est oui : cette URL fonctionne parfaitement avec cette ancienne version ESR de Firefox. L’affichage et les interactions à la souris, comme au clavier fonctionne de la même manière qu’avec un Firefox récent.

2ème piste : les logs

L’URL /angularjs-by-example/

Pour cette URL, l’audit fonctionne correctement, et les logs /var/log/asqatasun/asqatasun.log nous l’indique clairement :

INFO  (…)webapp.orchestrator.AsqatasunOrchestratorImpl  - Launching audit Page on http://revillweb.github.io/angularjs-by-example/
INFO  (…)service.command.AbstractScenarioAuditCommandImpl  - Loading content for http://revillweb.github.io/angularjs-by-example/
INFO  (…)service.command.AbstractScenarioAuditCommandImpl  - http://revillweb.github.io/angularjs-by-example/ has been loaded
INFO  (…)service.command.AuditCommandImpl  - Adapting http://revillweb.github.io/angularjs-by-example/#/
INFO  (…)service.command.AuditCommandImpl  - http://revillweb.github.io/angularjs-by-example/#/ has been adapted
(…)
INFO  (…)webapp.orchestrator.AsqatasunOrchestratorImpl  - Audit page terminated on http://revillweb.github.io/angularjs-by-example/

L’URL /angularjs-by-example/#/

Pour cette 2ème URL, l’audit plante dès le début… @koj une idée ?
issue #157

INFO  (…)webapp.orchestrator.AsqatasunOrchestratorImpl - Launching audit Page on http://revillweb.github.io/angularjs-by-example/#/
INFO  (…)service.command.AbstractScenarioAuditCommandImpl - Loading content for null
WARN  (…)service.command.AbstractScenarioAuditCommandImpl - Audit Status is ERROR while SCENARIO_LOADING was required 
WARN  (…)service.command.AuditCommandImpl - Audit status isERROR whileCONTENT_ADAPTING was required
WARN  (…)service.command.AuditCommandImpl - Audit status isERROR whilePROCESSING was required
WARN  (…)service.command.AuditCommandImpl - Audit status isERROR whileCONSOLIDATION was required
WARN  (…)service.command.AuditCommandImpl - Audit status isERROR whileANALYSIS was required

Fichier JSON

{
  "type": "script",
  "seleniumVersion": "2",
  "formatVersion":1,
  "steps": [
    {
      "type": "get",
      "url": "http://revillweb.github.io/angularjs-by-example/"
    },
    {
      "type": "clickElement",
      "locator": {
        "type": "css selector",
        "value": "img.hidden-sm.hidden-xs"
      }
    },
    {
      "type": "clickElement",
      "locator": {
        "type": "link text",
        "value": "POPULAR"
      }
    },
    {
      "type": "clickElement",
      "locator": {
        "type": "xpath",
        "value": "//ul[@class='list-of-shows']/li[3]/show/div/div[2]/div/a"
      }
    }
  ],
  "data": {
    "configs": {},
    "source": "none"
  },
  "inputs": [],
  "timeoutSeconds": 60
}

Scenario audit _2 pages only