5

我有一个看起来像这样的选择元素,现在我想打开它并选择值为 t3 的选项,所以我这样尝试:

<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();

现在这会打开菜单但它没有选择选项标签,我想使用 select() 而不是 click() 但 select() 尚不支持,或者至少这是我尝试使用该方法时收到的消息. 我运行以下扩展 PHPUnit_Extensions_Selenium2TestCase。

4

5 回答 5

13

它相对简单。

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

这应该根据值选择选择框的选项。使用 PHPUnit Selenium 2 v1.3.3

于 2014-04-15T11:07:52.247 回答
2

我发现我需要将其转换PHPUnit_Extensions_Selenium2TestCase_ElementPHPUnit_Extensions_Selenium2TestCase_Element_Select

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

另请参阅this other question

于 2013-07-22T19:37:55.953 回答
0

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

于 2013-06-30T13:29:00.333 回答
0

选择使用值使用

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

选择使用标签使用

      $this->select($this->byName())->selectOptionByLabel($label);
于 2017-07-21T10:34:41.007 回答
-1

你可以试试

$this->select('css=#selectMenu','test 1');
于 2014-06-30T04:49:56.947 回答