17
<select>
    <option value=''>-- Select an Option --</option>
    @foreach ($options as $option)
        <option value='{{ $option->value }}'>{{ $option->name }}</option>
    @endforeach
</select> 

选择第一个动态选项

4

3 回答 3

24
$option = $I->grabTextFrom('select option:nth-child(2)');
$I->selectOption("select", $option);
$I->click("Submit");
于 2013-07-01T21:26:28.483 回答
6

在开始使用 Codeception 时,我经常遇到同样的问题。使用推荐的答案,我在我的 AcceptanceTester 类中创建了一个辅助函数,以使其更容易一些。

public function selectFromDropdown($selector, $n)
{
    $option = $this->grabTextFrom($selector . ' option:nth-child(' . $n . ')');
    $this->selectOption($selector, $option);
}

$n选项列表中的位置在哪里。

然后你所要做的就是这样称呼它:

$I->selectFromDropdown('select', 1);

这在具有多个选择的页面上一直对我有用,这些选择基于上一个选择的选定选项加载其选项列表。

于 2016-06-10T17:42:00.000 回答
1

抱歉,我没有提交按钮,在我的情况下,我必须选择下拉元素,并且需要以某种方式告诉 codeception 完成选择。目前我可以选择但该选择不可见,因为我认为选择尚未完成不知何故。下面是我选择元素的代码。

$I->selectOption('//*[@class="ng-scope" and @ng-controller="dataIsland"]/*[local-  name()="select"]','partlycloudy');
于 2014-05-04T21:57:52.333 回答