使用Laravel Dusk在下拉菜单中基于文本选择一个选项

时间:2018-06-28 11:50:00

标签: laravel laravel-dusk browser-testing

我想根据其文本选择一个下拉选项,该怎么办? 这是我的HTML代码:

<select name="category">
   <option>Appliances</option>
   <option>Sporting Goods</option>
   <option>Cosmetics</option>
</select>

这是我黄昏时的选择器:

->select('category','Appliances')

3 个答案:

答案 0 :(得分:2)

  

要在下拉选择框中选择一个值,可以使用select方法。与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')

答案 1 :(得分:2)

您可以使用XPath:

$selector = "//select[@name='category']/option[text()='Appliances']";
$browser->driver->findElement(WebDriverBy::xpath($selector))->click();

答案 2 :(得分:0)

<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')