2016-07-14 17 views
0

ich einen Rahmen mit Behat gebaut haben, eine Drupal-Website zu testen, alles gebaut ist mit PHP ..Behat - Senden Sie TAB keypress

Ich brauche ein verborgenes Element auf dem Bildschirm zu finden, die das Element erscheint nur, wenn es Tabbed to, und das Framework kann es nicht nach Namen oder xpath/css finden ... Gibt es eine Möglichkeit, eine Schrittdefinition zu schreiben, die die Tab-Taste drücken wird? Ich habe versucht, aber kann sie nicht arbeiten ..

Dank

ich diesen Code online gefunden und dachte, es wäre für mich zu arbeiten -

/** 
* @Given I manually press tab 
*/ 
public function manuallyPressTab() 
{ 
    $this->getSession()->executeScript(" 
$(':focus').trigger($.Event('keypress', {which: 9, keyCode: 9})); 
"); 
+0

Bitte geben Sie die Selen/Behat Code, den Sie –

+0

versucht haben Sie für jQuery Skripte suchen müssen, die Registerkarte drücken wird und versuchen Sie sie, einige der Skripte können für einige arbeiten und für einige andere nicht. Wenn Sie einen UX-Entwickler im Team haben, bin ich sicher, dass er Ihnen helfen kann. – lauda

+0

Haben Sie die Methoden keyPress, keyDown oder keyUp ausprobiert? – lauda

Antwort

0

ich dies mit dem folgenden Verfahren gelöst in einem FeatureContext und durch Zombie.js als Test runnner mit:

/** 
    * @When on :arg1 I manually press tab 
    */ 
    public function onIManuallyPressTab($arg1) { 

    $this->getSession() 
     ->executeScript("jQuery('#$arg1').blur()"); 
    } 
+0

es kann in bestimmten Fällen funktionieren, aber dies ist nicht drücken Sie die Registerkarte. Sie haben auch eine Unschärfe-Methode mit Nerz. Als bewährte Methode sollte der Name der Methode die Methodenfunktionalität beschreiben. – lauda