How to check the content of a picklist

Often, you want to assert that a particular picklist contains exactly a certain list of elements.

Say, you have a web page that is available in several languages, and the user can pick the language through a picklist that looks like this:

<select name="page" onchange="quick_switch_language( this )">
<option value="Home">English</option>
<option value="Accueil">Français</option>
</select>

How to do this?

Here is an example using the PHPUnit SeleniumTestCase class:

$expAvailableLanguages = array("English" => "Home", "Français" => "Accueil");
$this->assertSelectElementContainsItems("xpath=//form[@id='available-languages-form']/select",
$expAvailableLanguages ,
"List of available languages was wrong");

public function assertSelectElementContainsItems($selectElementID, $expItems, $message) {
$this->assertElementPresent($selectElementID, "$message\nMarkup element '$selectElementID' did not exist");
$gotItemsText = $this->getSelectOptions($selectElementID);
$expItemsText = array_keys($expItems);
$this->assertEquals($gotItemsText, $expItemsText, "$message\nItems in the Select element '$selectElementID' were wrong.");
foreach ($expItems as $anItem => $anItemValue)

Unknown macro: { $thisItemElementID = "$selectElementID/option[@value='$anItemValue']"; $this->assertElementPresent($thisItemElementID); }

}

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.