Я использую Laravel Dusk
для написания Selenium
тестов для своего проекта. У меня есть класс под названием PrivilegeLevelsTest
в моей папке tests\Browser
.
Я использую в этом классе много сложных селекторов, таких как ->type('.gen-search-table[data-uri="table/userSearch"] input', $this->lettersToSearch)
Я видел в документации, что эти селекторы могут быть объявлены в классе Page
, в методе siteElements
, но эти объявления можно увидеть только из папки Pages
. Поскольку я не хочу помещать туда свой тест, я спрашиваю, есть ли альтернативный способ увидеть эти объявления снаружи?
Мой Page.php
выглядит так:
<?php
namespace Tests\Browser\Pages;
use Laravel\Dusk\Page as BasePage;
abstract class Page extends BasePage
{
/**
* Get the global element shortcuts for the site.
*
* @return array
*/
public static function siteElements()
{
return [
'@element' => '#selector',
'@search' => '.gen-search-table[data-uri="table/userSearch"] input'
];
}
}
И я хочу использовать @search
вот так:
public function testAdminCanListUsers()
{
$this->browse(function(Browser $browser) {
$browser->loginAs($this->user)
->visit('/profile')
->pause(3000)
->type('@search', $this->lettersToSearch)
->pause(3000)
->press('Show All')
->assertSee($this->userToSearch->user_name);
});
}