Często wpadałem na ten sam problem, gdy zaczynałem od kodekceptacji. Korzystając z zalecanej odpowiedzi, utworzyłem funkcję pomocniczą w mojej klasie AcceptanceTester, aby było to trochę łatwiejsze.
public function selectFromDropdown($selector, $n)
{
$option = $this->grabTextFrom($selector . ' option:nth-child(' . $n . ')');
$this->selectOption($selector, $option);
}
Gdzie $n
jest pozycją na liście opcji.
Następnie wszystko co musisz zrobić to nazwać tak:
$I->selectFromDropdown('select', 1);
Zostało to działa na mnie na stronach, które mają kilka wybierz, że ładują ich listę opcji w zależności od wybranej opcji poprzedni wybierz.
Czy istnieje sposób na wykrycie liczby dostępnych opcji? – realtebo
Pamiętaj, że możesz wybrać OSTATNIO dziecko z: 'wybierz opcję: ostatnie dziecko' i możesz odliczać od końca listy opcji za pomocą 'wybierz opcję: nth-last-child (-2)' Drugi element itp. – Dave
Należy również pamiętać, że w przypadku strony zawierającej wiele elementów