Выберите параметр в динамическом выборе с помощью кода?

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

Выберите первую динамическую опцию

Ответ 1

$option = $I->grabTextFrom('select option:nth-child(2)');
$I->selectOption("select", $option);
$I->click("Submit");

Ответ 2

Я часто сталкивался с той же проблемой, когда начинал с Codeception. Используя рекомендуемый ответ, я создал вспомогательную функцию в классе AcceptanceTester, чтобы сделать это немного легче.

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

Где $n - позиция в списке опций.

Тогда все, что вам нужно сделать, это вызвать его так:

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

Это работает для меня на страницах с несколькими вариантами, которые загружают свой список опций на основе выбранной опции предыдущего выбора.

Ответ 3

Извините, у меня нет кнопки отправки, в моем случае я должен выбрать элемент раскрывающегося списка, и как-то нужно сказать, что код для завершения выбора. В тот момент, когда я могу выбрать, но этот выбор не отображается, поскольку я предполагаю, что выбор не завершено каким-то образом. Ниже мой код, чтобы выбрать элемент.

$I->selectOption('//*[@class="ng-scope" and @ng-controller="dataIsland"]/*[local-  name()="select"]','partlycloudy');