Новое редактирование
Прошло много времени с тех пор, как я написал это, и я могу сказать, что область веб-автоматизации (в целях тестирования или сканирования / сканирования) сильно изменилась.Основные браузеры уже представили флаг --headless
и даже интерактивную оболочку.Больше не нужно менять старую старую переменную DISPLAY
в Linux.
Firefox также изменился, перейдя на Servo движок, написанный на Rust.Я попробовал профиль ниже с современной версией (в частности, 62.0).Некоторые работали, некоторые нет.Имейте это в виду.
Я просто продолжаю ответ Кирении в этом вопросе.Однако отключение CSS может привести к тому, что Jquery не сможет манипулировать элементами DOM.Используйте QuickJava и те, что ниже:
profile.set_preference("network.http.pipelining", True)
profile.set_preference("network.http.proxy.pipelining", True)
profile.set_preference("network.http.pipelining.maxrequests", 8)
profile.set_preference("content.notify.interval", 500000)
profile.set_preference("content.notify.ontimer", True)
profile.set_preference("content.switch.threshold", 250000)
profile.set_preference("browser.cache.memory.capacity", 65536) # Increase the cache capacity.
profile.set_preference("browser.startup.homepage", "about:blank")
profile.set_preference("reader.parse-on-load.enabled", False) # Disable reader, we won't need that.
profile.set_preference("browser.pocket.enabled", False) # Duck pocket too!
profile.set_preference("loop.enabled", False)
profile.set_preference("browser.chrome.toolbar_style", 1) # Text on Toolbar instead of icons
profile.set_preference("browser.display.show_image_placeholders", False) # Don't show thumbnails on not loaded images.
profile.set_preference("browser.display.use_document_colors", False) # Don't show document colors.
profile.set_preference("browser.display.use_document_fonts", 0) # Don't load document fonts.
profile.set_preference("browser.display.use_system_colors", True) # Use system colors.
profile.set_preference("browser.formfill.enable", False) # Autofill on forms disabled.
profile.set_preference("browser.helperApps.deleteTempFileOnExit", True) # Delete temprorary files.
profile.set_preference("browser.shell.checkDefaultBrowser", False)
profile.set_preference("browser.startup.homepage", "about:blank")
profile.set_preference("browser.startup.page", 0) # blank
profile.set_preference("browser.tabs.forceHide", True) # Disable tabs, We won't need that.
profile.set_preference("browser.urlbar.autoFill", False) # Disable autofill on URL bar.
profile.set_preference("browser.urlbar.autocomplete.enabled", False) # Disable autocomplete on URL bar.
profile.set_preference("browser.urlbar.showPopup", False) # Disable list of URLs when typing on URL bar.
profile.set_preference("browser.urlbar.showSearch", False) # Disable search bar.
profile.set_preference("extensions.checkCompatibility", False) # Addon update disabled
profile.set_preference("extensions.checkUpdateSecurity", False)
profile.set_preference("extensions.update.autoUpdateEnabled", False)
profile.set_preference("extensions.update.enabled", False)
profile.set_preference("general.startup.browser", False)
profile.set_preference("plugin.default_plugin_disabled", False)
profile.set_preference("permissions.default.image", 2) # Image load disabled again
Что это делает?Вы можете увидеть, что он делает в комментариях.Тем не менее, я также нашел пару записей о: config для увеличения производительности.Например, приведенный выше код не загружает шрифт или цвета документа, но загружает CSS, поэтому Jquery - или любая другая библиотека - может манипулировать элементами DOM и не вызывает ошибку.(Для дальнейшей отладки вы все равно загружаете CSS, но ваш браузер будет переходить по строкам, содержащим специальное семейство шрифтов или определение цвета. Таким образом, браузер будет загружать и загружать CSS, но использовать системные настройки по умолчанию и стилизовать страницу быстрее.)
Для получения дополнительной информации, ознакомьтесь с этой статьей .
Редактировать (Тесты)
Я только что провел тест производительности.Вам не нужно серьезно относиться к результатам, так как я сделал этот тест только один раз, чтобы у вас была идея.
Я провел тест на старой машине с процессором Intel Pentium 2,2 ГГц, 3 ГБ ОЗУ сОбласть подкачки 4 ГБ, система Ubuntu 14.04 x64.
Тест состоит из трех этапов:
- Производительность загрузки драйвера : секунды, потраченные на загрузку драйвера в
webdriver
module. - Производительность загрузки страницы : количество секунд, потраченных на загрузку страницы.Он также включает в себя скорость интернета, однако процесс рендеринга также включен.
- Производительность проверки DOM : Скорость проверки DOM на странице.
Я использовал эта страница в качестве субъекта и проверена .xxy a
в качестве селектора CSS.Затем я использовал специальный процесс один за другим.
Селен, Firefox, Нет профиля
Driver Loading Performance: 13.124099016189575
Page Loading Performance: 3.2673521041870117
DOM Inspecting Performance: 67.82778096199036
Селен, Firefox, Профиль выше
Driver Loading Performance: 7.535895824432373
Page Loading Performance: 2.9704301357269287
DOM Inspecting Performance: 64.25136017799377
Редактировать (О безголовости)
Я сделал тест, может быть, месяц назад, но я не мог взять результаты.Тем не менее, я хочу отметить, что скорость загрузки драйверов, загрузки страниц и проверки DOM снижается до десять секунд , когда Firefox используется без заголовка.Это было действительно круто.