Утверждают, что на странице есть определенное количество элементов

Я писал тест с Laravel Dusk, чтобы убедиться, что на индексной странице, скажем, 10 статей.

Вот некоторый HTML-код:

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

Я думал, что в моем тестовом файле я мог сначала выбрать все li.article-item затем утверждают, что существует 10 таких элементов.

Код может быть:

$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 для выбора этих элементов?

Спасибо!

2

Решение

Оказывается, что экземпляр $ browser хранит используемый драйвер, что означает, что в тестовом методе я действительно могу выбрать элемент HTML через API WebDriver.

Таким образом, возможное решение может быть

/** @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);
});
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]