Laravel Dusk测试的全局CSS选择器



我正在使用Laravel Dusk为我的项目编写Selenium测试。我的testsBrowser文件夹中有一个名为PrivilegeLevelsTest的类。

我在那个类中使用了很多复杂的选择器,比如->type('.gen-search-table[data-uri="table/userSearch"] input', $this->lettersToSearch)

我在文档中看到,这些选择器可以在siteElements方法中的Page类中声明,但这些声明只能从Pages文件夹中看到。既然我不想把我的测试放在那里,我想问是否有另一种方法可以从外部查看这些声明?

我的Page.php看起来像这样:

<?php
namespace TestsBrowserPages;
use LaravelDuskPage 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);
});
}

您必须创建自己的Page类:

class MyPage extends Page {
}

然后与on():一起使用

$browser->loginAs($this->user)
->visit('/profile')
->pause(3000)
->on(new MyPage)
->type('@search', $this->lettersToSearch)
->pause(3000)
->press('Show All')
->assertSee($this->userToSearch->user_name);

最新更新