Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QWebElement не находит дочернии элементы
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Script. Интеграция WebKit
EvgeniyM
Проблема в следующем, как бы я не старался, чем бы не искал (QWebFrame или QwebElement), нигде у меня не может найти элементы ниже иерархии "html/head" и "html/body".
Все эти три элемента (html, head, body) спокойно находит, а ниже нет и все.
Весь вечер плясал с бубнами, уже подумал может со сборкой у меня что-то не то (код компилится, страницы отлично рендериться).

Листинг можно воспроизвести легко у себя.
#include <QtCore/QtCore>
#include <QtGui/QtGui>
#include <QtWebKit/QtWebKit>

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

    QWebView *web = new QWebView();
    web->load(QUrl("http://php.net/"));
    QWebFrame *frame = web->page()->mainFrame();
    
     QWebElementCollection el = frame->findAllElements("p");
     qDebug() << el.toList().size();
    
    web->show();
    return app->exec();
}


Тут код должен найти все элементы "p" (их там много) и вывести их число. У меня получается "0" (или объект является "isNull" если для одного элемента).
mezmay
Наверное надо перейти на уровень документа:
QWebElement document = frame->documentElement();

и в нем искать
QWebElement firstTextInput = document.findFirst("input[type=text]");
EvgeniyM
Цитата(mezmay @ 15.12.2012, 16:28) *
Наверное надо перейти на уровень документа:
QWebElement document = frame->documentElement();

и в нем искать
QWebElement firstTextInput = document.findFirst("input[type=text]");

С этого и начинал, это просто уже последние попытки. То есть QWebElement не ищет так же. Даже тупо беру элемент - и говорю мне найти первый дочерний элемент - и пусто.
У вас работает тот код?

Может кодировка, я уже не знаю, хотя кормил как cp1251 так и utf-8 (последний сайт utf8)

Может кодировка, я уже не знаю, хотя кормил как cp1251 так и utf-8 (последний сайт utf8)
mezmay
А ждать loadFinished() кто будет?)
EvgeniyM
Цитата(mezmay @ 15.12.2012, 17:22) *
А ждать loadFinished() кто будет?)

Чорт, спасиб
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.