Rapporteur: Obtenir le texte de l'alerte?

Je teste mon Angulaire app avec le Rapporteur. J'ai regardé à travers les docs et ne peut pas trouver un moyen d'obtenir le texte de l'alerte. Il n'est pas un élément dans le DOM en soi (au moins, pas ce que je peux comprendre; quand il y a une alerte jusqu', google Chrome, inspecteur ne vous permettra pas de le consulter). Comment pourrais-je tester qu'une alerte a le bon message? Ou encore, que l'on est présent?

Modifier

Voici mon code. HTML:

  <button id='alertButton' data-ng-click='ngAlert()'>Button</button>

JS:

$scope.ngAlert = function(){
  window.alert('Hello');
};

Rapporteur spec:

  describe('alert', function(){
    var ptor = protractor.getInstance();
    beforeEach(function(){
      button = $('#alertButton');
      button.click();
    });
    it('tells the alert message', function(){
      expect(button.getText()).toEqual('Button');
    });
  });

Quand je fais une assertion sur le bouton texte comme ceci:

it('tells the alert message', function(){
  expect(button.getText()).toEqual('Button');
});

Il passe. Mais si j'essaie de lire une alerte comme ceci:

it('tells the alert message', function(){
  var alertDialog = ptor.switchTo().alert();
  expect(alertDialog.getText()).toEqual('Hello');
});

J'obtiens cette erreur:

$ rapporteur spec/e2e/conf.js en Utilisant le sélénium serveur
http://localhost:4444/wd/hub .F

Échecs:

1) alerte indique le message d'alerte Message:
NoSuchAlertError: pas d'alerte ouvert (Séance d'info: chrome=30.0.1599.101) (Pilote info: chromedriver=2.2,=plate-forme Mac OS
X 10.9.0 x86_64) (ATTENTION: Le serveur ne fournit pas toutes les stacktrace
de l'information) de Commande de la durée ou délai d'attente: 3 millisecondes Construire info:
version: '2.35.0', de révision: 'c916b9d', temps: "2013-08-12 15:42:01'
Infos système: os.nom: 'Mac OS X', os.arc: 'x86_64', os.version:
'10.9', java.version: '1.6.0_65' ID de Session:
edbaa752eb14ad45f7e961903b69a466 Pilote d'info:
org.openqa.le sélénium.le chrome.ChromeDriver Capacités [{=plate-forme MAC,
acceptSslCerts=true, javascriptEnabled=true, browserName=chrome,
chrome={chromedriverVersion=2.2}, orientable=false,
locationContextEnabled=vrai, version=30.0.1599.101,
cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true,
browserConnectionEnabled=false, nativeEvents=true,
webStorageEnabled=true, applicationCacheEnabled=false,
takesScreenshot=true}]

Fini en 2.125 secondes 2 essais, 2 affirmations, 1 échec

/usr/local/lib/node_modules/rapporteur/node_modules/sélénium webdriver/lib/webdriver/promesse.js:1542
jeter de l'erreur;
^ NoSuchAlertError: pas d'alerte ouvert

Mais je l'ai testé sur la page et il fonctionne, et le test peut clairement trouver la touche dans les DOM. Donc, soit le click() fonction n'est pas de travail, ou quelque chose d'autre se passe?

InformationsquelleAutor nickcoxdotme | 2013-11-09