2017-09-21 5 views
0

私はLaravel 5.5とDusk 2.0を使用しています。私は次のHTMLを持っています。Laravel Duskでボディクラスセレクタを使用できないのはなぜですか?

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
</head> 
<body class="my-body-class" id="my-body-div"> 
    <div class="my-content-class" id="my-content-div"> 
     Content goes here. 
    </div> 
</body> 
</html> 

私の夕暮れのテストです。

public function testBasicExample() 
{ 
    $this->browse(function (Browser $browser) { 
     $browser->visit('/test/admin-fixed-layout'); 
     $this->assertNotNull($browser->element('.my-content-class')); 
     $this->assertNotNull($browser->element('#my-content-div')); 
     // $this->assertNotNull($browser->element('.my-body-class')); 
     $this->assertNotNull($browser->element('#my-body-div')); 
    }); 
} 

ボディクラスセレクタを使用するアサーションをコメント解除すると、テストは失敗します。どうして? Laravel\Dusk\ElementResolverクラスの

public function __construct($driver, $prefix = 'body') 
{ 
    $this->driver = $driver; 
    $this->prefix = trim($prefix); 
} 

:デフォルトの接頭辞でbodyに設定されているため、

答えて

1

です。

あなたが本当にこれを変更する必要があります(おそらくない点が存在しない)場合は、Tests/DuskTestCaseクラスに次のメソッドを追加することができます。

protected function newBrowser($driver) 
{ 
    return new \Laravel\Dusk\Browser($driver, new \Laravel\Dusk\ElementResolver($driver, '')); 
} 

これがデフォルトのブラウザをオーバーライドし、デフォルトの代わりに空の接頭辞を渡しますbody接頭辞

関連する問題