Как выбрать случайные значения из массива выпадающих списков в Laravel Dusk?

#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. Он выбирает только первый выпадающий список.