- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Laravel Dusk 进行浏览器测试。我对它还是陌生的,正在学习它是如何工作的。我正在使用大量 JavaScript 来帮助完成我需要做的事情。
我有一个需要填写的模态窗体,我可以使用 JS 完成。但是,验证失败,因为当 Dusk 按下按钮提交字段时,它首先清除输入,使表单抛出错误,因此验证失败。
我试过搜索其他有同样问题的人,但找不到其他人。我没有尝试任何事情,因为没有关于问题起源的痕迹。
$browser->script('document.querySelector("#body-nav > div:nth-child(1) > select").selectedIndex=1');
$browser->pause(5000);
$insertJobTitle = <<<js
document.querySelector("#body-nav > div:nth-child(2) > input").value="{$jobTitle}"
js;
$browser->script($insertJobTitle);
$browser->pause(1000);
$insertDateTime = <<<js
document.querySelector("#body-nav > div:nth-child(3) > input").value="2019-07-25"
js;
$browser->script($insertDateTime);
$browser->pause(1000);
$insertEstimatedTimeToFill = <<<js
document.querySelector("#body-nav > div:nth-child(4) > div:nth-child(1) > input").value={$numberHigh}
js;
$browser->script($insertEstimatedTimeToFill);
$browser->pause(1000);
$insertNumberOfPositions = <<<js
document.querySelector("#body-nav > div:nth-child(4) > div:nth-child(2) > input").value={$numberLow}
js;
$browser->script($insertNumberOfPositions);
$browser->pause(1000);
$browser->script('document.querySelector("#body-nav > div:nth-child(5) > div:nth-child(1) > input").value=500');
$browser->pause(1000);
$browser->script('document.querySelector("#body-nav > div:nth-child(5) > div:nth-child(2) > input").value=200');
$browser->pause(1000);
$browser->script('document.querySelector("body > div.modal.fade.show > div > div > div.modal-footer > div > div > button.btn.btn-primary").click()'); //******** */
$browser->pause(50000);
预期的结果是让 Dusk 提交表单。错误消息是一个 JavaScript 错误,显示 javascript error: Cannot read property 'click' of null
这是由于输入错误后表单超时引起的。
最佳答案
所以,事实证明,我并不像我想的那样需要 JavaScript。发生了什么,我试图使用 JS 在 HTML 元素中插入文本,这实际上是一个 Vue 组件。当我按下按钮提交时,它无法识别这些值。
问题是我试图在模态上插入数据。我很难在模态中使用选择器。我最终使用了这个结构:
$browser->whenAvailable('body > div.modal.zoomin.show > div > div > div.modal-body', function($modal){
$modal->click('body > div.modal.zoomin.show > div > div > div.modal-footer > div > div > label.ml-auto.mb-0.vue-js-switch > div');
$modal->press('body > div.modal.zoomin.show > div');
});
解决方案,当您访问模态中的项目时,您必须使用 whenAvailable 方法,该方法然后接受一个函数,您将在该函数中引用模态中项目的选择器,但仅在模态可用之后。
关于javascript - Laravel Dusk 在表单确认后删除输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56487041/
我正在尝试运行 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.
我是一名优秀的程序员,十分优秀!