为什么单击单选按钮时 Laravel Dusk 测试不会触发 x-on:change() 或 x-model
Why won't Laravel Dusk test fire off x-on:change() or x-model when clicking a radio button
我有一个表单,里面有两个单选按钮,它们都有 x-models 和 x-on:change 功能。当 运行 一个 dusk 测试时,单选按钮看起来已被选中,但单击按钮时应该出现的基本功能没有出现。
我在 Dusk 测试中尝试了 click()、radio() 和 check()。
单选按钮:
<ul>
<li>
<input wire:model.defer="qcResult"
x-model="qcResult"
x-on:change="toggleQcReasonSection()"
dusk="qc-result-pass"
id="qc-result-pass"
type="radio"
name="qc-result"
value="Pass"
>
<label for="qc-result-pass"
class="text-green-500 font-bold"
>
Pass
</label>
</li>
<li>
<input wire:model.defer="qcResult"
x-model="qcResult"
x-on:change="toggleQcReasonSection()"
dusk="qc-result-fail"
id="qc-result-fail"
type="radio"
name="qc-result"
value="Fail"
>
<label for="qc-result-fail"
class="text-red-500 font-bold"
>
Fail
</label>
</li>
</ul>
{
// $result would be either fail or pass.
$browser->radio('@qc-result-' . $result, ucfirst($result));
}
事实证明,页面中间的 x 数据是问题所在。最后将 x 数据移动到页面上的第一个 div 并修复了它。真正令人恼火的是,一切在本地和我们的测试服务器上都运行良好,当我们部署到 prod 时,它的行为与在测试中一样,就像 Alpine 甚至没有加载一样。一旦我们将 x 数据移动到页面顶部,它就像变魔术一样工作。
我有一个表单,里面有两个单选按钮,它们都有 x-models 和 x-on:change 功能。当 运行 一个 dusk 测试时,单选按钮看起来已被选中,但单击按钮时应该出现的基本功能没有出现。
我在 Dusk 测试中尝试了 click()、radio() 和 check()。
单选按钮:
<ul>
<li>
<input wire:model.defer="qcResult"
x-model="qcResult"
x-on:change="toggleQcReasonSection()"
dusk="qc-result-pass"
id="qc-result-pass"
type="radio"
name="qc-result"
value="Pass"
>
<label for="qc-result-pass"
class="text-green-500 font-bold"
>
Pass
</label>
</li>
<li>
<input wire:model.defer="qcResult"
x-model="qcResult"
x-on:change="toggleQcReasonSection()"
dusk="qc-result-fail"
id="qc-result-fail"
type="radio"
name="qc-result"
value="Fail"
>
<label for="qc-result-fail"
class="text-red-500 font-bold"
>
Fail
</label>
</li>
</ul>
{
// $result would be either fail or pass.
$browser->radio('@qc-result-' . $result, ucfirst($result));
}
事实证明,页面中间的 x 数据是问题所在。最后将 x 数据移动到页面上的第一个 div 并修复了它。真正令人恼火的是,一切在本地和我们的测试服务器上都运行良好,当我们部署到 prod 时,它的行为与在测试中一样,就像 Alpine 甚至没有加载一样。一旦我们将 x 数据移动到页面顶部,它就像变魔术一样工作。