代码之家  ›  专栏  ›  技术社区  ›  Fogarasi Norbert

用于laravel黄昏测试的全局css选择器

  •  0
  • Fogarasi Norbert  · 技术社区  · 6 年前

    我在用 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);
            });
         }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Jonas Staudenmeir    6 年前

    你必须自己创造 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);