laravel - Laravel Dusk:使用 vue-fragment 时元素不可交互
问题描述
我很难在这个包中使用 Dusk 。它消除了“你应该返回一个根元素”的限制。
现在我想编写 Laravel Dusk 测试,但我得到了错误:
1) Tests\Browser\HomepageTest::it_shows_the_correct_value
Facebook\WebDriver\Exception\ElementNotInteractableException: element not interactable
(Session info: chrome=81.0.4044.113)
如果我不使用片段,一切正常......但不幸的是,我必须使用它。
我创建了一个存储库来测试所有 Laravel Dusk 测试。https://github.com/pmochine/fragment-dusk
知道如何在不调用$browser->script()
函数的情况下进行测试吗?
解决方案
您需要更改此行
$browser->assertSeeIn('.dialog', 'Option1');
在你的测试 this_test_fails_even_though_we_try_to_use_script 到这个
$text = $browser->script("return document.querySelector('.dialog').textContent")[0];
$this->assertEquals('Result: Option1', trim($text));
而 laravel 黄昏找不到片段内容的原因是,片段标签不会被 DOM 读取为节点。你可以在这里阅读更多关于它的信息https://blog.logrocket.com/fragments-in-vue-js/
推荐阅读
- ios - 在 Visual Studio 2017 中添加 Apple 开发者帐户
- pandas - 从另一列中查找包含特定字符串的列
- android - 为什么我的扩展 EditText 不像 EditText 那样响应?
- rust - 在 Rust 中检测 ConnectionReset,而不是让线程恐慌
- php - 显示特殊字符的 GD 库
- java - 不转移焦点的 JCheckBox 助记符
- assembly - 汇编中的伪指令和软件抽象
- amazon-web-services - 如何使用 Amplify 框架从 AWS 中的 API 获取 http 状态和详细响应?
- amazon-web-services - 将 HTTP API 与 AWS Amplify 结合使用
- java - 如何返回数组中的对象?