CSS не отображается у кукловода внутри docker - PullRequest
0 голосов
/ 08 мая 2020

У меня есть автоматические тесты браузера с помощью кукольника. Я запустил их в Circle CI на машине Circle CI windows по умолчанию. Теперь я пытаюсь перейти на docker, основанный на машине Microsoft Debian (веб-сайт: NET). Я установил хром на эту машину. Проблема в том, что CSS не отображается. Я использовал page.on запрос / ответ, и запрашивается css, ответ - 200. Я искал конфигурацию, которую можно было бы отключить, но не нашел ее - ни в StackOverflow.

Репозиторий: https://github.com/darakeon/dfm/

Прямо сейчас ветвление: 4.1.5.0 (он будет повышен до мастера, когда я завершу sh версию)

Dockerfile находится внутри docker папка. Он тоже на Docker хабе, мой пользователь - darakeon. Сейчас это имя darakeon /net -circleci. Когда я решу проблему, я переименую его, чтобы разделить на 2 разные машины - одна на базе Microsoft, у которой есть только libman, другая на основе первой, которая тоже может запускать кукольник.

Папка тестов: site / Tests / Browser

Скрипт, который я использую для запуска тестов: .circleci / browser / run-tests. sh

Чем больше времени вы потратили, пытаясь что-то решить, тем более нелепым будет быть решением. Пожалуйста, называйте меня идиотом, но помогите мне решить эту проблему ...

1 Ответ

0 голосов
/ 09 мая 2020

Обнаружил проблему. Вот как это делается:

Я использовал page.screenshot на другом сайте в Интернете, чтобы проверить, рендерил ли css на нем. Это было. Странно. После поиска решений я всегда находил людей, которые учили НЕ показывать css, перехватывать запрос и останавливать его. Итак, я перехватил запросы, чтобы узнать, запрашивается ли css:

    await page.setRequestInterception(true);

    page.on('request', (req) => {
        console.log(req.url(), req.resourceType())
        req.continue();
    })

Учитывая, что запросы были в порядке, я пошел проверить ответы:

    page.on('response', (r) => {
        if (r.status() >= 400)
            console.error(r.url(), r.status())
    })

Сюрприз! Мой основной css возвращал 404. Но почему, если он работал на windows? Просто. Windows не волнует, позвоните ли вы Bootstrap, bootstrap, bOOTSTRAP или BoOtStRap, они все будут искать один и тот же файл. Linux считайте правильным точно такой же случай.

Итак, когда вы получаете свой. NET сайт из windows и помещаете его в Linux, проверьте все случаи.

...