【发布时间】:2018-09-05 22:49:16
【问题描述】:
我需要帮助编写 Laravel Dusk 测试。我正在使用带有ElementUI 的Vue。我真的很喜欢这个框架,但是,我不能在我的测试中使用 Dusk 的内置 select() 方法。
这是因为 ElementUI 的 select 组件不会生成真正的 <select> 标签,而是创建一个普通的 <input>(即只读),并且在页面底部,带有 select 选项的 popper,所以,我的页面中没有<select> 标签,只有一个<div> 和一个只读的<input>。
如何使用 Dusk 编写一个测试,让我点击一个“div”??
如果我尝试在该输入上输入如下内容:
// $browser->select('my_select_id'); not working,
$browser->type('my_select_id', 1);
它抛出了一个异常:
Facebook\WebDriver\Exception\InvalidElementStateException: invalid element state: Element must be user-editable in order to clear it.
所以我不知道如何测试 ElementUI 的选择 :(
请帮忙,
谢谢!
编辑
发布 ElementUI 生成的 html:
<div class="el-select w-100 el-select--mini" value="0" title="Cliente" dusk="v-select-component">
<div class="el-input el-input--mini el-input--suffix">
<input autocomplete="off" placeholder="Cliente" size="mini" name="client_id" id="client_id" readonly="readonly" type="text" rows="2" class="el-input__inner">
<span class="el-input__suffix">
<span class="el-input__suffix-inner">
<i class="el-select__caret el-input__icon el-icon-arrow-up"></i>
</span>
</span>
</div>
<div class="el-select-dropdown el-popper" style="display: none; min-width: 512.344px;">
<div class="el-scrollbar" style="">
<div class="el-select-dropdown__wrap el-scrollbar__wrap" style="margin-bottom: -17px; margin-right: -17px;">
<ul class="el-scrollbar__view el-select-dropdown__list" style="position: relative;">
<li class="el-select-dropdown__item selected"><span>Item 1</span></li>
<li class="el-select-dropdown__item"><span>Item 2</span></li>
</ul>
</div>
<div class="el-scrollbar__bar is-horizontal">
<div class="el-scrollbar__thumb" style="transform: translateX(0%);"></div>
</div>
<div class="el-scrollbar__bar is-vertical">
<div class="el-scrollbar__thumb" style="transform: translateY(0%);"></div>
</div>
</div>
</div>
</div>
编辑 2:
我在 ElementUI 的选择示例中添加了一个简单的 JSFiddle。我只是想用 Laravel Dusk 测试那个选择
【问题讨论】:
-
能否贴出ElementUI为选择组件生成的HTML?
-
我添加了。谢谢评论:D
-
我从未使用过 ElementUI。您能给我一个简单的代码示例(HTML 和 JS),以便我尝试找到解决方案吗?
-
或者你可以创建一个公共测试网站吗?
-
我添加了 JSFiddle,但我不知道这是否足够。谢谢你的帮助!
标签: laravel testing select laravel-dusk element-ui