2010-05-12 14 views
6

Ich schreibe einen Selenium-Test in PHP mit der PHPUnit Selenium-Erweiterung.Selen: Wie wähle ich eine Option aus einem Auswahlmenü?

Ich weiß, wie etwas in ein Textfeld eingeben:

$this->type('fieldName', 'value'); 

Aber wie wähle ich eine Option aus einem Dropdown-Menü?

+1

Kleiner Trick: Sie können jederzeit Ihren Test aufnehmen - oder Teil - mit Selenium IDE (Firefox-Erweiterung) und aufgezeichneten Test PHP-Datei konvertieren -> Export Testfall als ... -> PHP Selenium RC –

Antwort

12

auf der anderen Seite (genau) Antworten zu erweitern, können Sie auf dem Etikett, den Wert, ID oder Index der Optionen wählen Sie basiert. Von der offiziellen Referenz verfügbar bei http://release.seleniumhq.org/selenium-core/1.0/reference.html:

select (selectLocator, optionLocator)

Argumente:

  • selectLocator - ein Element Locator ein Dropdown-Menü
  • optionLocator Identifizierung - ein Optionslokalisierer (standardmäßig ein Label)

Wählen Sie eine Option aus einem Dropdown-Menü mit einem Options-Locator.

Option-Locators bieten verschiedene Möglichkeiten zum Festlegen von Optionen eines HTML-Select-Elements (z. B. zum Auswählen einer bestimmten Option oder zum Bestätigen, dass die ausgewählte Option einer Spezifikation entspricht). Es gibt verschiedene Formen von Select Option Locator.

  • Label = labelPattern: Spiele-Optionen basierend auf den Etiketten, das heißt den sichtbaren Text. (Dies ist die Standardeinstellung.)
    • label = regexp:^[Oo] ther
  • Wert = Valuepattern: Spiele-Optionen auf der Grundlage ihrer Werte.
    • Wert = andere
  • id =id: Spiele auf ihre ids basierten Optionen.
    • id = option1
  • Index = Index: Spiele eine Option basierend auf seinen Index (Offset von Null).
    • index = 2

Wenn keine Option Locator Präfix vorhanden ist, ist das Standardverhalten auf dem Etikett entsprechen.

+0

konnte Sie veröffentlichen den Link, wo Sie das gefunden haben? – Andrew

+0

Ich habe meine Antwort mit einem Link zu der Referenz aktualisiert. –

2
//note that it's the option text not value 
$this->select('selectName', 'LabelText'); 
2
$this->select("selectFieldIdentifier", "label=Option label"); 
Verwandte Themen