- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要帮助编写 Laravel Dusk 测试。我将 Vue 与 ElementUI 一起使用.我真的很喜欢这个框架,但是,我不能使用 Dusk 的内置 select()
我测试中的方法。
这是因为select ElementUI 的组件不会生成真正的 <select>
标记,而是创建一个普通的 <input>
(这是只读的)并且在页面底部,带有选择选项的弹出器,因此,没有 <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:
我添加了一个简单的 JSFiddle使用 ElementUI 的选择示例。我只是想用 Laravel Dusk 测试这个选择
最佳答案
您必须单击 .el-select
元素并等待弹出器打开:
$browser->click('.el-select');
$browser->waitFor('.el-select-dropdown.el-popper');
然后你可以通过索引选择一个选项:
$browser->elements('.el-select-dropdown__item')[2]->click();
或通过文本:
$selector = "//li[@class='el-select-dropdown__item']/span[text()='Option3']";
$browser->driver->findElement(WebDriverBy::xpath($selector))->click();
我看不到按值选择选项的方法,因为这些值不在 HTML 中的任何位置。
关于Laravel Dusk + Vue 与 ElementUI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49514382/
我正在尝试运行 Laravel Dusk,我需要使用测试数据库。当我查看屏幕截图时,它说数据库不存在。问题是数据库是在 .env 上定义的,而不是在 .env.dusk 上定义的……我试图将文件重命名
如何点击使用 laravel dusk 隐藏的元素?我们在 Selenium 中有脚本方法。我们如何使用 Laravel Dusk 实现相同的功能? 最佳答案 尝试$browser->script('
我有一个页面,其中包含一些禁用的输入、跨度和 div。 在后台我等待按键。这是一些内存游戏的背景。 我的问题是,结果证明它很难测试。 我知道两个函数来模拟输入:type()和 keys() .当我使用
标题说明了一切。我想知道如何使用内存中的 SQLite 数据库使用 Dusk 正确设置新的 Laravel 5.4 项目。 我可以运行测试,但出现错误:“没有这样的表:用户” 我已经创建了一个新的 L
我刚开始在 Laravel 5.8 上使用 Laravel Dusk 并且已经遇到了一个问题。在 Google 上搜索了很多,但没有找到答案。 $browser->visit('https://www
在下面的代码中,我想检查元素是否存在于 XPath 中,然后只有它应该执行代码。 if($browser->driver->findElement(WebDriverBy::xpath('/html/
即使像下面这样运行一个简单的测试也是如此: public function test_simple() { $user = factory(User::class)->create();
我正在编写一些测试,我想看看 Dusk 是否正确填写了输入字段,但 Dusk 在运行测试时不显示浏览器,有什么办法可以强制它这样做吗? 最佳答案 在 tests\DuskTestCase.php 文件
我有一个场景,我不想检查如果元素存在并且可见/可点击。如果不是,则脚本处理继续。 虽然 Laravel Dusk 提供了 $browser->assertVisible($selector) 方法,但
有没有办法在运行 Laravel Dusk 时获得代码覆盖率? 我知道它运行浏览器测试,所以它不会检查代码,但是有没有办法添加一个监听器来检查覆盖了哪些代码?我现在没有看到关于这个主题的任何内容。 最
Dusk 正在为在控制台中返回失败/警告的测试提供单独的日志,但我真正想要的是一个大日志文件或报告,其中列出了 Dusk 脚本中每个测试的通过/失败状态。 任何人都可以建议一种方法来解决这个问题吗?我
使用 Atlassian Bamboo 运行Dusk测试后,Chrome进程仍然是“僵尸”。 下面是我的驱动程序代码初始化: $options = (new ChromeOptions())
我正在使用 Laravel Dusk 进行浏览器测试。我对它还是陌生的,正在学习它是如何工作的。我正在使用大量 JavaScript 来帮助完成我需要做的事情。 我有一个需要填写的模态窗体,我可以使用
我在 Laravel 5.4 框架上的项目,我正在使用 Dusk用于浏览器测试。我有一个页面,其中有几个我想独立测试的部分,但是我遇到了一个问题,我必须为每个单独的测试启动一个新的浏览器实例、登录并导
最近将一个 5.3 项目升级到 5.4,一切看起来都不错。 今天我开始实现 Dusk,但是在运行示例测试时遇到了问题 ☁ footy-finance [5.4] ⚡ php artisan dusk
我正在使用 Laravel Dusk使用我的浏览器自动执行程序Laravel Dusk 使用 ChromeDriver 实现自动化我遇到的问题是我在常规 Google Chrome 浏览器上安装了一些
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
我刚开始研究 Dusk - 我正在测试一些用户功能。 下面是我当前的测试,但是我正在尝试自己清理 - 例如,新创建的用户应该在完成后从数据库中删除。 我尝试使用tearDown 方法,但它似乎并没有真
我在 Controller 中使用 Laravel Dusk 供用户使用我的网站获取任何网站的屏幕截图。 我的代码: toProcess(); if ($process->isStar
我目前让 PhpStorm 成功运行 Dusk 测试,但是我希望它使用我设置的测试数据库。根据其他在线线程和资源,我创建了指向我创建的测试数据库的 .env.dusk.local 和 phpunit.
我是一名优秀的程序员,十分优秀!