Troubleshooting
Исправления наиболее часто возникающих проблем с Aspose.HTML FOSS для Python, сгруппированные по уровням.
Стили и каскад
Правило таблицы стилей не оказывает эффекта. Таблица должна быть подключена с помощью Document.attach_style_sheet() before Element.get_computed_style() называется. Отсоединённые таблицы никогда не участвуют в каскаде.
Встроенное объявление проигрывает правилу таблицы стилей. Правила автора, отмеченные !important превосходят неважные встроенные объявления. Проверьте с CSSStyleDeclaration.get_property_priority().
Два правила находятся в равенстве, и «неправильное» выигрывает. Связи одинаковой специфичности решаются по порядку правил — выигрывают более поздние правила. Сравните кортежи с specificity() в случае сомнений.
Унаследованное значение не достигает потомка. Локальные значения всегда переопределяют унаследованные, и не каждое свойство наследуется. Сначала прочитайте вычисленное значение родителя, чтобы подтвердить, что должно передаваться вниз.
Парсинг и DOM
Некорректная разметка парсится без ошибки. Поведение согласно стандартам: построение дерева определяет восстановление для каждого случая ошибки. Если необходимо обнаружить проблемы, проанализируйте поток токенов через Tokenizer.tokenize().
Содержимое таблицы появляется за пределами её таблицы. Foster parenting перемещает неправильно расположенное содержимое таблицы, точно так же, как делают браузеры. Исправьте вложенность в исходнике.
get_element_by_id() ничего не возвращает. Элемент должен содержать id атрибут и быть присоединённым к дереву этого документа.
Encodings
Метка порядка байтов появляется в декодированном тексте. Используйте detect_encoding() — она удаляет байты BOM из result.text. При ручном декодировании они остаются.
Две метки для одной и той же кодировки сравниваются как неравные. Нормализуйте обе с помощью get_canonical_name(); latin1 and iso-8859-1 оба windows-1252 канонически.
Scripts
Оценка вызывает ModuleNotFoundError. Скрипт импортирует модуль, отсутствующий в ModuleRegistry. Зарегистрируйте его или рассматривайте ошибку как корректную работу вашей песочницы.
Сбой скрипта выводит из строя конвейер. Catch JSEvaluationError на границе оценки — это типизированный сигнал о сбоях со стороны скрипта.