<select>
<option value=''>-- Select an Option --</option>
@foreach ($options as $option)
<option value='{{ $option->value }}'>{{ $option->name }}</option>
@endforeach
</select>
选择第一个动态选项
<select>
<option value=''>-- Select an Option --</option>
@foreach ($options as $option)
<option value='{{ $option->value }}'>{{ $option->name }}</option>
@endforeach
</select>
选择第一个动态选项
$option = $I->grabTextFrom('select option:nth-child(2)');
$I->selectOption("select", $option);
$I->click("Submit");
在开始使用 Codeception 时,我经常遇到同样的问题。使用推荐的答案,我在我的 AcceptanceTester 类中创建了一个辅助函数,以使其更容易一些。
public function selectFromDropdown($selector, $n)
{
$option = $this->grabTextFrom($selector . ' option:nth-child(' . $n . ')');
$this->selectOption($selector, $option);
}
$n
选项列表中的位置在哪里。
然后你所要做的就是这样称呼它:
$I->selectFromDropdown('select', 1);
这在具有多个选择的页面上一直对我有用,这些选择基于上一个选择的选定选项加载其选项列表。
抱歉,我没有提交按钮,在我的情况下,我必须选择下拉元素,并且需要以某种方式告诉 codeception 完成选择。目前我可以选择但该选择不可见,因为我认为选择尚未完成不知何故。下面是我选择元素的代码。
$I->selectOption('//*[@class="ng-scope" and @ng-controller="dataIsland"]/*[local- name()="select"]','partlycloudy');