#php #laravel-5 #laravel-dusk
#php #laravel-5 #laravel-dusk
Вопрос:
Я новичок в Laravel Dusk и в настоящее время работаю над простым проектом, в который вы можете добавить несколько выпадающих списков. Выпадающие списки имеют название, подобное name = "item[]"
. Как я могу выбрать каждый выпадающий список и выбрать случайные параметры?
Я пытался :
$items = $browser->elements('input[name^="item[]"');
foreach ($items as $item) {
$item->select(); // Select random options
}
но это не работает. Ошибки нет, тест и утверждения в порядке, но это не выбор значений из выпадающих списков.
Редактировать
Только что попробовал :
$items = $browser->elements('select[name^="item[]"'); // Change input to select
foreach ($items as $item) {
$item->select(); // Select random options
}
теперь это выдает мне ошибку «вызов неопределенного метода select()
«.
Комментарии:
1. Это выпадающие списки
<input>
или<select>
элементы?2. <выбрать> элементы
Ответ №1:
Используйте это:
use FacebookWebDriverWebDriverBy;
$items = $browser->elements('select[name^="item[]"]');
foreach ($items as $item) {
$options = $item->findElements(WebDriverBy::cssSelector('option:not([disabled])'));
$options[array_rand($options)]->click();
}
Комментарии:
1. написано «WebDriverBy не найден».
2. Вы должны импортировать класс:
use FacebookWebDriverWebDriverBy;
3. Вау, это работает. Большое вам спасибо. Можете ли вы предложить мне какие-либо ресурсы для изучения Laravel Dusk, кроме laravel.com. Таким образом, я могу самостоятельно исследовать, что такое «WebDriverBy::cssSelector» и другие.
4. Вы всегда можете многому научиться, посмотрев на код. Dusk внутренне использует github.com/facebook/php-webdriver , вот откуда
WebDriverBy
это.
Ответ №2:
используйте этот метод для устранения вашей ошибки
$browser->select(‘имя поля выбора’);
Комментарии:
1. Он выбирает только первый выпадающий список.