Laravel黄昏中的使用技巧有哪些

  介绍

小编给大家分享一下Laravel黄昏中的使用技巧有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

Laravel黄昏是Laravel的一个表达性强,易于使用,且功能强大的浏览器自动化测试工具。通过黄昏可以以编程的方式测试JavaScript驱动的应用程序。在使用黄昏编写测试案例时,我经常遇到一些限制。现在我在本文中将这些情况以及如何克服分享给大家。

<强> 1。填充隐藏字段

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

尽管Laravel黄昏没有为我们提供类似浏览器→美元fillHidden(字段,美元价值)的方法,但我们可以使用黄昏浏览器宏来实现。

//将以下代码添加到,serviceprovider.php 中   浏览器::宏(& # 39;fillHidden& # 39;,, function  (name 美元,美元值),{   ,,,这个→美元脚本(“document.getElementsByName(& # 39;名字# 39;美元)[0].value =, & # 39;美元价值# 39;“);   ,,,return 美元;   });//,然后你可以像这样使用/* *,@test  */public  function  fill_hidden_fields ()   {   ,,,这美元→浏览(function  (Browser 浏览器美元),{   ,,,,,,,美元浏览器→访问(& # 39;https://website.com/form& # 39;)   ,,,,,,,,,,,,,,,→类型(& # 39;input.name& # 39;,,美元的名字)   ,,,,,,,,,,,,,,,→类型(& # 39;input.address& # 39;,,美元地址)   ,,,,,,,,,,,,,,,→fillHidden (& # 39; checkin_date& # 39;,,美元日期)   ,,,,,,,,,,,,,,,→点击(& # 39;#提交# 39;)   ,,,,,,,,,,,,,,,→waitForText(& # 39;订单# 39;);   ,,,});   }

<强> 2。模拟HTML地理位置

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

/* *,@test  */public  function  test_geo_location ()   {   ,,,faker 美元;=,摊贩\工厂:创建();   ,,,latitude 美元;=,摊贩→美元纬度;   ,,,longitude 美元;=,摊贩→美元经度;   ,,,这美元→浏览(function  (Browser 浏览器美元),使用($纬度,经度美元),{   ,,,,,,,美元浏览器→访问(new 主页)   ,,,,,,,,,,,→assertOnPage ();   ,,,,,,,浏览器→美元司机→executeScript (   ,,,,,,,,,,,“window.navigator.geolocation.getCurrentPosition =,函数(onSuccessCallback), {   ,,,,,,,,,,,,,,,var  position =, {   ,,,,,,,,,,,,,,,,,,,& # 39;坐标# 39;:,{,& # 39;纬度# 39;:,{$纬度},,& # 39;经度# 39;:,{$经度},}   ,,,,,,,,,,,,,,,};   ,,,,,,,,,,,,,,,onSuccessCallback(位置);   ,,,,,,,,,,,},   ,,,,,,,);   ,,,,,,,美元浏览器→点击(& # 39;# geolocate-button& # 39;)   ,,,,,,,,,,,,,,,→assertSee(& # 39;经度:经度# 39;美元)   ,,,,,,,,,,,,,,,→assertSee(& # 39;纬度:纬度# 39;)   ,,,});   }

<强> 3。使用XPath选择器

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

浏览器→美元司机→findElement (   WebDriverBy:: xpath(“//表[@class=& # 39; x-grid3-row-table& # 39;]/身体/tr/td/div[包含(文本()& # 39;美元价值# 39;)]“)   )→点击();

这种方法的唯一问题就是[问题不大]可能会终端浏览器美元链式调用。

<强> 4。整页截屏

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

要在Laravel黄昏中创建完整的屏幕截的图,我们必须在我们的测试\ DuskTestCase。php中创建一个captureFailuresFor()方法,它将覆盖最初在黄昏Laravel \ \担忧\ ProvidesBrowser中定义的一个方法。

protected  function  captureFailuresFor(浏览器)   {   ,,,每个浏览器→美元(function  (Browser 浏览器,美元,美元键),{   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Laravel黄昏中的使用技巧有哪些