Laravel сумерки с селекторами - PullRequest
0 голосов
/ 03 апреля 2020

Я тестирую свой Laravel сайт, используя Dusk. Проблема в том, что Сумерки не могут найти определенный элемент. Я скопировал селектор элементов с помощью Chrome инструментов разработчика, и мой код выглядит следующим образом.

$browser->assertSeeIn('#content-container > div > div.table-responsive > table > tbody > tr > td:nth-child(1)', 'Test 1');

Я также пробовал xpath. Сбой также. Я запускаю свои тесты без заголовка, чтобы видеть правильную страницу. Что-то действительно не так с Dusk, что даже если он находится на правильной странице, он не может найти это сообщение. Я также попробовал:

$browser->assertSeeIn('table > tbody > tr > td:nth-child(1)', 'Test 1');

Что мне не хватает ???

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Я нашел ответ. Я использовал assertAuthenticated () в своих тестах, и это заставляет браузер go к сообщению json вошедшего в систему пользователя. Так что, если вы просто тестируете, избегайте assertAuthenticated () вместе.

0 голосов
/ 03 апреля 2020

Вы случайно проводите свои тесты в режиме без головы? У меня была похожая проблема (тесты в зависимости от селекторов). Проверьте метод драйвера вашего базового класса (DuskTestCase).

protected function driver()
{
    $options = (new ChromeOptions)->addArguments([
        '--disable-gpu',
        '--window-size=1024,768',
        // headless mode breaks every test that assert stuff about the url or use css/dusk selectors.
        // '--headless', 
        '--no-sandbox',
    ]);

    ...

}
...