Как подключить отладочный порт для браузера с ядром WebEngine?

Как подключиться к андетект браузеру с ядром WebEngine через API, используя библиотеку selenium? С Chromium я могу подключиться через debug_port, но у WebEngine такой возможности нет. Как мне действовать?
  • 24 января 2024 г. 4:18
Ответы на вопрос 1
WebEngine обычно связывают с Qt и его компонентом Qt WebEngine, который использует ядро Chromium для отображения веб-контента. Если вы имеете в виду WebEngine в этом контексте, то процесс отладки может немного отличаться от использования чистого Chromium.

В случае использования Selenium для автоматизации браузера, который использует WebEngine, сначала важно убедиться, что есть возможность взаимодействия браузера с Selenium. Обычно это требует WebDriver, который поддерживает используемую вами платформу.

Для Qt WebEngine, однако, не существует официального WebDriver от компании Qt. Вы должны будете или найти сторонний WebDriver, который поддерживает Qt WebEngine, или использовать другие методы автоматизации, которые не зависят от Selenium WebDriver.

Например, вы можете использовать QWebEngineView в своем приложении на Qt и взаимодействовать с JavaScript через методы `runJavaScript()` для выполнения операций в браузере.

Если ваша задача действительно подразумевает работу с Qt и Qt WebEngine, вам возможно придется подойти к задаче по-другому:

1. Если вы создаете приложение на Qt и хотите включить отладку, вы можете это сделать, включив параметры хрома при инициализации приложения:

```cpp
#include <QApplication>
#include <QWebEngineView>
#include <QWebEnginePage>
#include <QWebEngineProfile>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QWebEngineView view;
    QWebEngineProfile *profile = QWebEngineProfile::defaultProfile();

    // Включить отладку по заданному порту
    profile->setHttpUserAgent("MyAppAgent");
    QStringList arguments;
    arguments << "--remote-debugging-port=9222";
    QWebEngineProfile::defaultProfile()->setHttpUserAgent(arguments.join(' '));

    view.setUrl(QUrl("https://example.com"));
    view.show();

    return app.exec();
}
```

2. После того как вы запустили ваше Qt приложение с включенным отладочным портом, подключитесь к нему с помощью веб-браузера, введя URL `http://localhost:9222` в строке поиска.

3. Если вам нужно использовать Selenium, то вы должны найти решение для обеспечения взаимодействия Selenium с вашей кастомной сборкой WebEngine. Стандартно это делается через WebDriver, но для нестандартных или специализированных решений возможны другие варианты.

Обратите внимание, что вся информация верна на момент моего последнего обновления знаний (до 2023 года), и могут быть изменения в библиотеках, платформах или технологиях, которые делают возможным новые методы решения вашей задачи.
Похожие вопросы