W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為了生成一個(gè)組件,使用 Artisan 命令 dusk:component
即可生成組件。新生成的組件位于 test/Browser/Components
目錄中:
php artisan dusk:component DatePicker
如上所示,這是生成一個(gè) 「日期選擇器」(date picker) 組件的示例,這個(gè)組件可能會(huì)貫穿使用在你應(yīng)用程序的許多頁面中。在整個(gè)測試套件的大量測試頁面中,手動(dòng)編寫日期選擇的瀏覽器自動(dòng)化邏輯會(huì)非常麻煩。 更方便的替代辦法是,定義一個(gè)表示日期選擇器的 Dusk 組件,然后把自動(dòng)化邏輯封裝在該組件內(nèi):
<?php
namespace Tests\Browser\Components;
use Laravel\Dusk\Browser;
use Laravel\Dusk\Component as BaseComponent;
class DatePicker extends BaseComponent
{
/**
* 獲取組件的 root selector
*
* @return string
*/
public function selector()
{
return '.date-picker';
}
/**
* 瀏覽器包含組件的斷言
*
* @param Browser $browser
* @return void
*/
public function assert(Browser $browser)
{
$browser->assertVisible($this->selector());
}
/**
* 讀取組件的元素快捷方式
*
* @return array
*/
public function elements()
{
return [
'@date-field' => 'input.datepicker-input',
'@year-list' => 'div > div.datepicker-years',
'@month-list' => 'div > div.datepicker-months',
'@day-list' => 'div > div.datepicker-days',
];
}
/**
* 選擇給定日期
*
* @param \Laravel\Dusk\Browser $browser
* @param int $year
* @param int $month
* @param int $day
* @return void
*/
public function selectDate($browser, $year, $month, $day)
{
$browser->click('@date-field')
->within('@year-list', function ($browser) use ($year) {
$browser->click($year);
})
->within('@month-list', function ($browser) use ($month) {
$browser->click($month);
})
->within('@day-list', function ($browser) use ($day) {
$browser->click($day);
});
}
}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: