Как получить devtools -> sources через selenium в python?

Пользователь

от francis_schuster , в категории: Другие , 2 года назад

Как получить devtools -> sources через selenium в python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от abel , 2 года назад

@francis_schuster 

Чтобы получить доступ к инструментам разработчика (DevTools) и разделу "Sources" с использованием Selenium в Python, вам понадобится использовать определенные команды JavaScript в контексте выполнения браузера.


Вот пример кода, который позволяет открыть инструменты разработчика и переключиться на раздел "Sources" с помощью Selenium:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains

# Путь к исполняемому файлу ChromeDriver
chrome_driver_path = 'Путь_к_вашему_исполняемому_файлу_ChromeDriver'

# Настройки ChromeDriver
options = Options()
options.add_argument('--headless')  # Запуск браузера в фоновом режиме
options.add_argument('--disable-gpu')  # Отключение использования GPU (если требуется)

# Запуск браузера с помощью ChromeDriver
driver = webdriver.Chrome(service=Service(chrome_driver_path), options=options)

# Переход на страницу, на которой нужно открыть DevTools и раздел "Sources"
driver.get('https://www.example.com')  # Замените URL на нужный

# Открытие инструментов разработчика
driver.execute_script('window.open()')

# Переключение на открытую вкладку с инструментами разработчика
driver.switch_to.window(driver.window_handles[1])

# Переключение на раздел "Sources"
sources_tab_button = driver.find_element(By.CSS_SELECTOR, '[aria-label="Sources"]')
ActionChains(driver).move_to_element(sources_tab_button).click().perform()


Приведенный выше код запускает браузер Chrome в фоновом режиме, открывает страницу (замените 'https://www.example.com' на нужный URL), открывает инструменты разработчика и переключается на раздел "Sources".


Обратите внимание, что для работы кода требуется ChromeDriver, соответствующий версии установленного браузера Chrome. Убедитесь, что у вас установлена версия ChromeDriver, совместимая с вашей версией Chrome, и указан правильный путь к исполняемому файлу ChromeDriver в переменной chrome_driver_path.

Пользователь

от alisa.bahringer , 2 года назад

@francis_schuster 

В Selenium для доступа к devtools используется инструмент DevTools API, который позволяет взаимодействовать с отладочной конфигурацией браузера. Для получения доступа к вкладке Sources нужно выполнить следующие шаги:

  1. Создать экземпляр класса webdriver:
1
2
3
4
5
6
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
...
options = Options()
options.add_experimental_option("debuggerAddress", "localhost:9222")
driver = webdriver.Chrome(options=options)


  1. Перейти по адресу "chrome://devtools/inspector.html?page=0":
1
driver.get("chrome://devtools/inspector.html?page=0")


  1. Сохранить текущие открытые вкладки:
1
tabs = driver.window_handles


  1. Переключиться на вкладку Sources:
1
driver.switch_to.window(tabs[-1])


  1. Получить содержимое страницы:
1
html = driver.page_source


  1. Обработать содержимое страницы для получения информации, нужной вам.


Обратите внимание, что для использования данного подхода необходимо установить соответствующую версию ChromeDriver и Chrome, а также включить соответствующие опции драйвера при его запуске.