danis_2014: В том, что в начале программы "текущая папка" это не то, где лежит файл скрипта, а то, где находился терминал, из которого вы вызвали питон.
>Скрипт запускается из под консоли. Папка точно находится в одной директории с исполняемым файлом.
Покажите точные команды, которыми вы запускаете свой скрипт.
Хорошо, вот фиддл, а вот скриншот, где я в нем жму на ссылку. Теперь вы продемонстрируйте любым способом, что у вас выпадает одна и та же опция каждый раз.
Если вы можете менять библиотеку, то конечно выкиньте проверку на NodeList. Проверить, что все элементы нужного типа легко: [].every.call(arr, e => e instanceof Element). Для старых браузеров длиннее, но всё равно легко:
[].reduce.call(arr, function(t, e) {return t && (e instanceof Element)})
dom1n1k: Вставлен он в DOM или нет неважно, важно, есть ли родитель. Если есть, то element.parentNode.querySelectorAll сработает и без документа. А если родителя нет, то можно значит его засунуть во что-нибудь на время, ничего не испортится.