#django #selenium #django-testing #django-pipeline
#django #селен #django-тестирование #django-конвейер
Вопрос:
Я использую django-pipeline
для загрузки статических файлов.
Странно то, что StaticLiveServerTestCase
live_server_url
он не может правильно загружать статические файлы.
Вот часть кода:
class ProductSetupTestCase(TestCase):
@classmethod
def setUpClass(cls):
super(ProductSetupTestCase, cls).setUpClass()
# place category
cls.place_category = PlaceCategory.objects.create(name="학교")
# subject category
cls.subject_category1 = SubjectCategory.objects.create(name="사람")
cls.subject_category2 = SubjectCategory.objects.create(name="꽃병")
for i in range(5):
name = 'name' str(i)
product = Product.objects.create(
name=name,
place_category=cls.place_category,
)
product.subject_category_set.add(cls.subject_category1)
product.subject_category_set.add(cls.subject_category2)
product.variation_set.create(color='black')
product.variation_set.create(color='single')
product.variation_set.create(color='multi')
class CartItemEditTest(ProductSetupTestCase, StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
self.browser.implicitly_wait(2)
Firefox
появляется браузер, и я выполняю следующую команду:
self.browser.get(self.live_server_url) # self.live_server_url value is localhost:8081
И когда я проверяю js
файл с помощью инструмента разработки, он показывает следующее:
<script type="text/javascript" src="/static/js/message.8d038600d898.js" charset="utf-8"></script>
Когда я копирую src
( http://localhost:8081/static/js/message.8d038600d898.js
) и вставляю его в новую вкладку, он не отображается Not Found
.
Теперь я использовал другой URL, http:localhost:8000
, который django runserver url
.
self.browser.get(
http://localhost:8000 `)
Когда я проверяю это время, статические файлы загружаются довольно хорошо:
<script type="text/javascript" src="/static/js/message.js" charset="utf-8"></script>
Почему это происходит? Должен ли я live_server_url
больше не использовать?
Комментарии:
1. Я не использовал django-pipeline, но только что обнаружил, что браузеры selenium также выполняют кэширование (конечно), может ли это быть так?
2. @Danimal Нет, я сталкиваюсь с той же проблемой, и, установив длительный тайм-аут ожидания Selenium, я могу открыть инспектор DOM и покопаться. Он пытается выполнить запрос, но выдает ошибку 404.