Выберите опцию на основе текста в раскрывающемся списке с помощью 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')
Другие вопросы по тегам