5

I got a select element that look like this, now I want to open it up and select the option with value t3, so I tried it like this:

<select id="selectMenu">
    <option value="">&nbsp;</option>
    <option value="t1">test 1</option>
    <option value="t2">test 2</option>
    <option value="t3">test 3</option>
    <option value="t4">test 4</option>
    <option value="t5">test 5</option>
    <option value="t6">test 6</option>
</select>

$this->byId('selectMenu')->click();
sleep(1);
$type = $this->elements($this->using('css selector')->value(option[value="t3"]'));
$type[0]->click();

Now this opens the menu but it does not select the option tag, I thought of using the select() instead of click() but select() is not supported yet (or at least that's the message i get when I try to use the method). I run the following extension PHPUnit_Extensions_Selenium2TestCase.

Daniel Widdis
  • 8,424
  • 13
  • 41
  • 63
user1593846
  • 734
  • 1
  • 15
  • 34

5 Answers5

13

it's relatively simple.

$this->select($this->byId('selectMenu'))->selectOptionByValue('t3');

this should select the selectbox's option based on value. Using PHPUnit Selenium 2 v1.3.3

Gamesh
  • 175
  • 1
  • 10
2

I found I needed to convert the PHPUnit_Extensions_Selenium2TestCase_Element to a PHPUnit_Extensions_Selenium2TestCase_Element_Select:

PHPUnit_Extensions_Selenium2TestCase_Element_Select::fromElement($this->byId('selectMenu'))->selectOptionByValue('t3');

Also see this other question

Community
  • 1
  • 1
Mike C
  • 21
  • 3
0

$this->byId('selectMenu')->selectOptionByValue('t3');

mrmrf
  • 99
  • 1
  • 4
0

To select using value use

      $this->select($this->byName())->selectOptionByValue($value);

To select using label use

      $this->select($this->byName())->selectOptionByLabel($label);
TestRunner
  • 31
  • 4
-1

You can try with

$this->select('css=#selectMenu','test 1');
cyberoot
  • 340
  • 2
  • 18