欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

分析五个Laravel Dusk的使用技巧

程序员文章站 2022-04-19 17:15:30
1. 填充隐藏字段在测试某些 js 组件时 (例如自动完成,日期选择器等) ,可能需要编写动作模拟操作与这些组件交互。犹豫这些组件中的大多数最终都会将值保存到隐藏字段中。那么将值直接填写到隐藏字段中可...

1. 填充隐藏字段

在测试某些 js 组件时 (例如自动完成,日期选择器等) ,可能需要编写动作模拟操作与这些组件交互。犹豫这些组件中的大多数最终都会将值保存到隐藏字段中。那么将值直接填写到隐藏字段中可能更加方便。这可以防止不稳定的测试,并确保我们不测试自己不拥有 / 控制的东西 (第三方组件)。

尽管 laravel dusk 没有为我们提供类似$browser->fillhidden($field, $value)的方法,但我们可以使用dusk browser macros来实现。

2. 模拟 html 地理位置

我曾经不得不测试一个页面,该页面需要 html 网站提供地理位置,以便它可以显示一些结果。没有可用的直接模拟方法,因此我不得不重写 getcurrentposition 方法,该方法最终将由页面调用。

3. 使用 xpath 选择器

有时,我会遇到无法使用 css 选择器来定位元素的情况。这些通常发生在动态表格中,或者在我无法修改的第三方 js 组件中。但是,laravel dusk 不直接支持 xpath 选择器,并且经常需要访问基础 webdriver 实例。

这种方法的唯一问题就是 [问题不大] 可能会终端$browser链式调用.*

4. 整页截屏

laravel dusks 为我们提供了失败测试的屏幕截图,这对于了解测试失败的原因非常有帮助。但是,有时错误或有问题的元素可能在屏幕显示区域以外。

要在 laravel dusk 中创建完整的屏幕截图,我们必须在我们的 tests \ dusktestcase.php 中创建一个 capturefailuresfor() 方法,它将覆盖最初在 laravel\dusk\concerns\providesbrowser 中定义的一个方法。

现在,无论何时我们调用$browser->screenshot('$shotname'),发生错误时我们都将获得完整的屏幕截图

5. 访问浏览器错误日志

这个没什么问题,只是我发现的一些有趣的东西。我们可以通过调用 $browser->driver->manage()->getlog(‘browser') 来访问浏览器控制台日志。

这将在浏览器的控制台中返回一系列日志。例如,对于页面上没有 javascript 错误的测试而言,它可能很有用。

但是请注意,它不包含console.log调用的输出

以上就是分析五个laravel dusk的使用技巧的详细内容,更多关于五个laravel dusk的使用技巧的资料请关注其它相关文章!

相关标签: Laravel duck