Выберите опцию на основе текста в раскрывающемся списке с помощью Laravel Dusk
Я хочу выбрать опцию раскрывающегося списка на основе его текста, что мне делать? Это мой HTML-код:
<select name="category">
<option>Appliances</option>
<option>Sporting Goods</option>
<option>Cosmetics</option>
</select>
И это мой селектор в сумерках:
->select('category','Appliances')
3 ответа
Решение
Вы можете использовать XPath:
$selector = "//select[@name='category']/option[text()='Appliances']";
$browser->driver->findElement(WebDriverBy::xpath($selector))->click();
Чтобы выбрать значение в раскрывающемся списке выбора, вы можете использовать метод выбора. Как и метод type, метод select не требует полного селектора CSS. При передаче значения методу select вы должны передать значение основного параметра вместо отображаемого текста:
Так что дайте значение вашим выбранным полям.
<select name="category">
<option value="Appliances">Appliances</option>
<option value="Sporting Goods">Sporting Goods</option>
<option value="Cosmetics">Cosmetics</option>
</select>
Тогда используйте
->select('category','Appliances')
<select class="form-select" name="product_category_id_productList_add" id="product_category_id_productList_add">
<option value="" disabled selected>-- Select Product Category --</option>
@foreach($product_category_data as $data)
<option value="{{$data->id}}">{{$data->name}}</option>
@endforeach
</select>
->select('product_category_id_productList_add', '11')