2016-07-21 25 views
0

Ich benutze ein QWebView um als Website zu laden, dann schnappe ich mir die currentFrame() davon. Danach versuche ich ein div mit der Klasse comment-text zu bekommen. Hier ist die Art, wie ich dies tat: Teileingang HTML:Keine gewünschte Ausgabe von QWebFrames findAllElements();

<div class="content"> 
    <span class="byline"> 
    <span class="author"> 
    <span aria-label="Verified" class="yt-channel-title-icon-verified yt-uix-tooltip yt-sprite" data-tooltip-text="Verified"></span> 
    <span class="badges"> 
    <span aria-label="Owner" class="yt-chat-badge badge-owner yt-uix-tooltip yt-sprite" data-tooltip-text="Owner"></span> 
    <span aria-label="Moderator" class="yt-chat-badge badge-moderator yt-uix-tooltip yt-sprite" data-tooltip-text="Moderator"></span> 
    <span aria-label="Sponsor" class="yt-chat-badge badge-member yt-uix-tooltip yt-sprite" data-tooltip-text="Sponsor"></span> 
    </span> 
    <a href="https://gaming.youtube.com/channel/UCY88BS-9dTTHl7As46eFyuw" class="yt-uix-sessionlink yt-user-name" data-sessionlink="ei=pUqQV8j6N4rWuQLQmZ3AAQ" data-ytid="UCY88BS-9dTTHl7As46eFyuw" dir="ltr" data-name="">Andres Casanovas</a> 
    </span> 
    </span> 
    <div class="comment-text" dir="ltr"> 
     he needs thorn 
    </div> 
    <div class="deleted-message-text"> 
    </div> 
    <div class="inline-error inline-message"> 
     Message not sent: <span class="inline-error-message"></span> 
    </div> 
    <div class="inline-moderator-message inline-message"></div> 
</div> 

Und hier ist der entsprechende Code:

YouTubeWebview = new QWebView(); 
    QEventLoop YouTubePageLoop1; 
    connect(YouTubeWebview, SIGNAL(loadFinished(bool)), &YouTubePageLoop1, SLOT(quit())); 
    connect(YouTubeWebview, SIGNAL(loadFinished(bool)), this, SLOT(YouTubeWebview_finishedLoading(bool))); 
    YouTubeWebview->load(QUrl("live_stream_url")); 
    YouTubePageLoop1.exec(); 
    YouTubeWebview->show(); 
    QWebElementCollection elements = YouTubeWebview->page()->currentFrame()->findAllElements("div.comment-text"); 
    qDebug() << elements.count();//Outputs '0' 

Antwort

2

eine QWebView verwenden als Webseite zu laden, dann packe ich die current() aus es. Danach versuche ich ein div mit der Klasse des Kommentartextes zu bekommen.