Я часто сталкивался с той же проблемой, когда начинал с 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');