首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel Dusk测试: Class属性不反映下一个'test‘函数中更新的值

Laravel Dusk是Laravel框架提供的一个端到端的浏览器测试工具,用于模拟用户在浏览器中的操作行为并进行自动化测试。在使用Laravel Dusk进行测试时,有时会遇到Class属性不反映下一个'test'函数中更新的值的情况。

这个问题通常是由于Laravel Dusk的测试环境和实际浏览器环境之间的差异导致的。Laravel Dusk使用了一个虚拟浏览器来执行测试,而虚拟浏览器与实际浏览器之间可能存在一些差异,导致Class属性在虚拟浏览器中没有及时更新。

为了解决这个问题,可以尝试以下几种方法:

  1. 使用waitFor方法:在测试代码中,可以使用waitFor方法来等待Class属性更新。waitFor方法会等待指定的条件满足后再继续执行后续代码。例如,可以使用waitFor('.class')来等待Class属性更新为指定的值。
  2. 使用refresh方法:在测试代码中,可以使用refresh方法来刷新页面,以确保Class属性得到正确的更新。例如,可以使用$browser->refresh()来刷新页面。
  3. 使用JavaScript代码:在测试代码中,可以使用JavaScript代码来手动更新Class属性。可以使用$browser->script()方法执行JavaScript代码,例如$browser->script("document.querySelector('.class').classList.add('new-class')")来添加新的Class属性。

总结起来,解决Laravel Dusk测试中Class属性不反映下一个'test'函数中更新的值的问题,可以尝试使用waitFor方法、refresh方法或JavaScript代码来确保Class属性得到正确的更新。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 菜鸟晋级之路

如果没有PHP经验,还是建议轻易入坑。毕竟连语法都不熟悉,很难上手。...数据填充文档faker文档 第三阶段:表单剥离 最开始表单校验都是直接写在controller,如果了解一下request相关内容,可以将表单验证和数据创建更新,都放在单独request类,...表单相关文档 第四阶段:自动化测试 Laravel从5.5才开始支持浏览器自动化测试dusk,不过功能直接就登峰造极了,各种assert让你眼花缭乱,而且易用性也在我用过各种浏览器测试框架首屈一指...dusk最好用,一个是支持分页,也就是把一部分内容抽象到单独类里面;还有一个是有好多内置函数,不需要写一大堆选择器,比如type输入可以使用input名字,press使用button名字,clickLink...测试相关文档(https://d.laravel-china.org/docs/5.5/dusk) 第五阶段:设计模式 我目前刚达到这一阶段,今天才刚刚理解依赖注入用法,才开始用上repository

1.3K00

Laravel 7发行说明

引入 Laravel 框架或其组件时,应始终使用版本约束,如 ^7.0,因为 Laravel 主要版本确实包含非兼容性更改。我们会努力确保您可以在一天或更短时间内更新到最新版本。...有时候需要在查询执行过程对特定属性进行类型转换,例如需要从数据库表获取数据时候。...Artisan test 命令 test 命令由 Nuno Maduro 贡献 除了 phpunit命令之外,现在可以使用 test Artisan 命令来运行测试。...此外,运行器将在第一次测试失败时自动停止: php artisan test 可以传递给 phpunit 命令任何参数也可以传递给 Artisan test 命令: php artisan test...在Laravel7,可以在任务类上定义 maxExceptions 属性: <?

9K20

Laravel5.3之PHP反射(Reflection) (上)

(private,protected,public)是否存在于指定类对象或类名Laravel很多处用到了这个函数,如Applicationregister()检查service provider...()是用来获取类父类名,目前Laravel还没用到这个函数,传入可以是子类对象或者子类名,写个PHPUnit测试下: // namespace MyRightCapital\Container...()获取后期静态绑定类即实际调用类名称,Laravel还没使用到该函数,不妨写个测试看下如何使用: // namespace MyRightCapital\Container\Tests;...() get_class_vars()只会读取类public属性组成一个数组,类似于get_class_methods(),若属性没有默认就为null,目前Laravel还未使用,看下PHPUnit...(),且属性没有默认就是null,Laravel只有一处使用到\Illuminate\Mail\Jobs\HandleQueuedMessage::__sleep() :line 78,写个PHPUnit

2.1K41

为什么 Laravel 这么优秀?

强大辅助函数和丰富 API,在下面的代码我们甚至可以做到一行代码就完成课程创建及依赖关系更新。...:在 Laravel ,辅助函数通常会放在一个名叫 Support 文件下面的;而这在其他框架通常会被叫做 utils。...作为后端开发,测试应该是所有环节中最重要一部分;我们可以不用为每个函数都编写单元测试,但对于暴露出去每一个 API,都应该有足够 Feature 测试来覆盖大部分可能情况。...在 Laravel 我们可以非常方便为每一个 API 编写功能测试,如下面我们为创建课程编写 HTTP 测试: uses(RefreshDatabase::class); it('create...我们还使用了 Laravel Resource 来格式化最终输出格式,这样做原因是很多情况下我们希望直接将数据库字段暴露出去,你甚至还能在 Laravel Resource 按不同角色显示不同字段

19110

Laravel API教程:如何构建和测试RESTful API

现在让我们回到我们模型,并将这些属性添加到$fillable字段,以便我们可以在我们Article::create和Article::update模型中使用它们: class Article extends...您也可以使用该$guarded 属性,以允许除属性所有属性。 Database Seeding Database Seeding是使用我们可以用来测试数据库虚拟数据填充我们数据库过程。...它现在节省大量时间,但随着项目的增长,它有助于保持路由DRY。 测试我们端点 Laravel包含通过phpunit.xml已经设置PHPUnit开箱即用集成。.... }, 测试命令将如下所示: $ composer test 为我们测试设立工厂 工厂将允许我们快速创建具有正确数据进行测试对象。...我们创建我们第一个测试,登录测试,使用以下命令: $ php artisan make:test Feature/LoginTest 这是我们测试class LoginTest extends

20.3K20

通过 Laravel 创建一个 Vue 单页面应用(三)

之前在 通过 Laravel 创建一个 Vue 单页应用(二) 完成了 UsersIndex 组件异步地从 API 中加载用户。...在创建控制器和 API 资源之前, 让我们首先设置一个数据库并且进行数据填充,以便为我们 SPA 提供一些测试数据。...最后我要指出是 const params 。...下一个和上一个按钮使用计算出属性来确定是否应禁用它们,而 goTo 方法使用这些计算出属性将 page 查询字符串参数推入下一页或上一页。...UsersIndex.vue 组件后显示出 SPA 结果: 下一步是什么 我们现在有一个有效 API,可以从数据库获取真实数据,还有一个简单分页组件,该组件在后端使用 Laravel API

5.2K10

Laravel系列4.3】模型Eloquent ORM使用(一)

同样,更新时候我们是先通过静态方法 find() 查找并返回一个数据对象,然后修改它属性再 update() 就可以了。...db_sex 表模型,这个表是上篇文章测试时使用,就直接拿来使用了。...这个参数是可选,如果填,它会默认找一个叫做 sex_id ,当然,在我们数据是没这个字段,所以我们指定为 sex 。...其实就是第一个参数是一个,然后把它放到第二个参数,这个参数是一个回调函数,然后通过回调函数来使用这个进行其它操作。这一段可能说得不太清楚,大家可以自己查看源代码然后调试一下就明白了。...最后 tap() 函数还是会把之前传递进行去第一个参数,也就是最终那个 DbSex 对象再一路返回到 __get() ,这样,就完成了整个链条调用。

8.8K20

Laravel系列6.4】管道过滤器

$pipes : func_get_args(); return $this; } 构造函数、send() 和 through() 方法都比较简单,就是给当前对象属性赋值,这个没什么特别的...= null): mixed 它作用是将回调函数 callback 迭代地作用到 array 数组每一个单元,从而将数组简化为单一。...callback 这个回调函数会有两个参数,分别是 carry 携带上次迭代返回,如果迭代是第一次,那么这个就是 initial 。另一个参数是 item ,也就是数组每个。 看不懂吧?...我们一步步来看。 参数不用多说了吧,stack 是上一次返回,pipe 是当前我们要处理,也就是当前中间件对象。在这个回调函数又调用了一层回调函数,并将这两个通过 use 传递进去。...中间件 return next() 东西呀,管道下一个回调函数

4.1K20

Laravel源码解析之ENV配置

Env文件使用 多环境env设置 项目中 env文件数量往往是跟项目的环境数量相同,假如一个项目有开发、测试、生产三套环境那么在项目中应该有三个 .env.dev、 .env.test、 .env.prod...自定义env文件路径与文件名 env文件默认放在项目的根目录laravel 为用户提供了自定义 ENV 文件路径或文件名函数, 例如,若想要自定义 env 路径,可以在 bootstrap 文件夹...,所以Laravel会在 checkForSpecificEnvironmentFile方法里根据 APP_ENV设置正确配置文件具体路径, 比如 .env.dev或者 .env.test,而针对第三情况则是默认...在项目中读取env配置 在Laravel应用程序可以使用 env()函数去读取环境变量,比如获取数据库HOST: env('DB_HOST`, 'localhost'); 传递给 env 函数第二个是...因为如果php.ini variables_order配置项成了 GPCS包含 E的话,那么php程序是无法通过 $_ENV读取环境变量,所以使用 putenv动态地设置环境变量让开发人员不用去关注服务器上配置

2.1K20

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好语言。(2)模型工厂类

个人认为Laravel是非常优雅开发框架:优雅设计模式、强大功能实现、各种方便扩展、持续版本更新,更主要是迄今为止我认为最优秀技术开发社区。 我必须为Laravel打Call。...组件,Tailwind 分页视图, 时间测试助手,artisan serve 改进,事件监听器改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Jetstream 为你下一个项目提供了完美的起点,包括登录、注册、电子邮件验证、双因子认证、会话管理、通过 Laravel Sanctum 提供 API 支持以及可选团队管理。...Eloquent 模型工厂 已完全重写为基于类工厂,并有完美的关联支持。例如 Laravel UserFactory 是这样写: <?...例如,你 User 模型 有个 suspended 属性,现在你想修改它一个默认属性,你可以使用基类工厂类 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型 PHP 方法。

2.7K41

竟然有人质疑我还在用Laravel开发?别忘了PHP是最好语言。

个人认为Laravel是非常优雅开发框架:优雅设计模式、强大功能实现、各种方便扩展、持续版本更新,更主要是迄今为止我认为最优秀技术开发社区。 我必须为Laravel打Call。...组件,Tailwind 分页视图, 时间测试助手,artisan serve 改进,事件监听器改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...Jetstream 为你下一个项目提供了完美的起点,包括登录、注册、电子邮件验证、双因子认证、会话管理、通过 Laravel Sanctum 提供 API 支持以及可选团队管理。...Eloquent 模型工厂 已完全重写为基于类工厂,并有完美的关联支持。例如 Laravel UserFactory 是这样写: <?...例如,你 User 模型 有个 suspended 属性,现在你想修改它一个默认属性,你可以使用基类工厂类 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型 PHP 方法。

2.5K60

Laravel5.3之Container源码解析

说明:本文主要学习LaravelContainer源码,主要学习Container绑定和解析过程,和解析过程依赖解决。分享自己研究心得,希望对别人有所帮助。...开发环境: Laravel5.3 + PHP7 + OS X 10.11 PHPUnit测试下绑定 在聊解析过程前,先测试下\Illuminate\Container\Container绑定源码,这里测试下...5个tests都通过: 关于在PHPStorm配置PHPUnit可参考这篇:Laravel5.2之基于PHPStorm编辑器Laravel开发 make()源码解析 从以上testcase知道...::class有构造依赖时,Container也会自动去解析这个依赖并注入ContainerNestedDependentStub::class构造函数,这个依赖是ContainerDependentStub...::class // 直到ContainerImplementationStub没有依赖或者是构造函数是基本属性, // 最后build()结束

4.4K51

Laravel5.3之Container源码解析

说明:本文主要学习LaravelContainer源码,主要学习Container绑定和解析过程,和解析过程依赖解决。分享自己研究心得,希望对别人有所帮助。...开发环境: Laravel5.3 + PHP7 + OS X 10.11 PHPUnit测试下绑定 在聊解析过程前,先测试下\Illuminate\Container\Container绑定源码,这里测试下...解析出service,而且在testBindDependencyResolution()这个test,还能发现当ContainerNestedDependentStub::class有构造依赖时,...Container也会自动去解析这个依赖并注入ContainerNestedDependentStub::class构造函数,这个依赖是ContainerDependentStub::class,而这个依赖又有自己依赖...所以以上PHPUnit测试用例不管什么方式绑定,都要进入build()函数内编译出相应对象实例。当编译出对象后,检查是否是共享,以及是否要触发回调,以及标记该对象已经被解析。

1.4K21

宇宙最强语言PHP“全栈”框架——Laravel来了!

此外,如果花时间解决了以上所有问题并成功创建了应用程序,会对下一个开发人员产生什么影响?并且,当有多个这样基于自定义框架应用程序时,你还必须记住每个应用程序控制器位置,以及路由语法等。...这并不意味着你不能用 Laravel 编写出具有良好架构应用程序或企业级应用程序,而意味着使用 Laravel 编写应用程序可以牺牲代码库可读性与可理解性。...此外,还有一套附加组件:Cashier(用于支付和订购)、Echo(用于 WebSocket 编程)、Scout(用于实现搜索功能)、Passport(用于 API 认证)、Dusk(用于前端测试)、Socialite...虽然其他框架可能会建议在每个项目中使用这些工具和结构,但是 Laravel 及其文档和社区更倾向于从最简单开始,比如从一个全局函数、外观(facade)、ActiveRecord 开始。...有趣是,Laravel 创造者以及它社区与 Ruby、Rails 和函数式编程语言有较多联系,而与 Java 联系较少。

2.4K10

关于laravel5.5定时任务详解(demo)

例如我们创建一个定时任务,名称为Test: //这里使用laravel给定 php artisan来生成命令,此处Test就是我们要生成文件 //这里artisan代表不仅仅是laravel自带命令...Test extends Command { //此处代表laravel自动生成名称,下面执行时候能用到 protected $signature = 'test:data'; //此处代表是描述...,并没有什么用 protected $description = 'test data'; /** * 计算数据服务 service 属性 *这里由于要用到我们逻辑,所以提前定义一下,方便下面使用...我这边是使用钩子函数。在同时要执行多个定时任务时候,通过after,before等方法,可以让多个定时任务变得有序起来。...如果是大家自己测试的话,可以随便写个定时任务,每分钟执行以下,这样就能准确知道自己定时任务是否正确了。

1.1K21

搭建谷歌浏览器无头模式抓取页面服务,laravel->php->python->docker

,有接口就用没有就没用了 第二版这一版需要一些配置参数来源页面是js渲染上去,没有接口,普通get页面又不能拿到渲染后页面文档,所以只能使用无头浏览器来爬取并操作页面 实现过程: laravel...版 项目是使用laravel开发,首先想到是集成到框架里,而laravel确实提供了相关组件:Laravel Dusk 虽然这个插件是用来做浏览器测试,但这里也可以用来爬取页面 ?...($selctor) 根据通用 css 选择器查询 WebDriverBy::name($name) 根据元素 name 属性查询 WebDriverBy::linkText($text) 根据可见元素文本锚点查询...headless直接切换过来,api都没变, 先封装docker:先去dockers里把环境搭起来,把相关依赖搞清楚 docker run -it -v /test:/test python:3.7.4...chromeheadless模式抓取页面操作页面,返回结果,拓展浏览器操作可以写在app.py

2.2K20

Laravel测试代码(1)

本文主要探讨写数据库测试。 写laravel程序时,除了写生产代码,还需要写测试代码。...其中,写数据库测试比较麻烦,因为需要针对每一个test case需要建立好数据集,该次test case污染数据表还需要恢复现场,避免影响下一个test case运行,同时还得保证性能问题,否则随着程序不断膨胀...这样会很大提高数据库测试性能,因为可以在每一个test case里只需要指定本次测试所污染数据表。...case定义本次污染数据表,保证下一个test case在运行前重刷下被污染数据表,如: final class AccountControllerTest extends TestCase...::class]); ... } } 这样会极大提高数据库测试效率,推荐使用Laravel给出\Illuminate

68831
领券