select 如何从 Laravel Dusk 中的下拉列表数组中随机取值?

How to select random values from an array of dropdowns in Laravel Dusk?

我是 Laravel Dusk 的新手,目前正在做一个简单的项目,您可以在其中添加多个下拉菜单。下拉菜单的名称类似于 name = "item[]"。我怎样才能 select 每个下拉菜单和 select 随机选项?

我试过了:

$items = $browser->elements('input[name^="item[]"');

foreach ($items as $item) {
    $item->select(); // Select random options
}

但它不起作用。没有错误,测试和断言没问题,但它不是 selecting 下拉列表中的值。

编辑

刚试过:

$items = $browser->elements('select[name^="item[]"'); // Change input to select

foreach ($items as $item) {
    $item->select(); // Select random options
}

它现在给我一个错误“调用未定义的方法 select()”。

用这个方法解决你的错误

$browser->select('select-box-name');

使用这个:

use Facebook\WebDriver\WebDriverBy;

$items = $browser->elements('select[name^="item[]"]');

foreach ($items as $item) {
    $options = $item->findElements(WebDriverBy::cssSelector('option:not([disabled])'));

    $options[array_rand($options)]->click();
}