2

Laravel Dusk을 사용하여 색인 페이지에 10 개의 기사가 있는지 확인하기 위해 테스트를 작성했습니다.페이지에 특정 수의 요소가 있다고 주장하십시오.

<h1>A list of articles</h1> 
<ul> 
    @foreach($articles as $article) 
     <li class="article-item"> {{ $article->title }}</li> 
    @endforeach 
</ul> 

내가 먼저 (10 개) 등의 요소가 있다고 주장하는 모든 li.article-item을 선택할 수 있습니다 내 테스트 파일에 그 생각을했다 : 여기

는 일부 HTML 코드입니다.

코드가 될 수 있습니다

$this->browse(function ($browser) { 
    $browser->visit('/articles') 
     ->assertSee('A list of articles'); 
    // no such method 
    $elements = $browser->findElements('.article-item'); 

    $this->assertCount(10, $elements); 

}); 

그러나 Laravel 황혼 한 번에 여러 요소를 선택하는 지원하지 않습니다처럼 실제로 보이는

. 이 경우 어떻게하면 테스트를 구조화 할 수 있습니까? Dusk 내에서 WebDriver API를 사용하여 해당 요소를 선택할 가능성이 있습니까?

감사합니다.

답변

0

$ 브라우저 인스턴스는 사용중인 드라이버를 저장합니다. 즉, 테스트 메소드에서 WebDriver API를 통해 실제로 HTML 요소를 선택할 수 있음을 의미합니다.

그래서 가능한 해결책은 될 수

/** @test */ 
public function it_displays_a_list_of_articles() 
{ 
    $this->browse(function ($browser) { 
     $browser->visit('/articles'); 
     $elements = $browser->driver->findElements(WebDriverBy::className('article-item')); 
     $this->assertCount(10, $elements); 
    }); 
}