1

Gmail からいくつかの情報を取得しようとしていますが、何度も試行してもうまくいきません。これは、javascript を使用して抽出しようとしているコード行です。

<a href="https://mail.google.com/mail/u/0/#inbox" target="_top" class="J-Ke n0" title="Inbox (182)" tabindex="0">Inbox (182)</a>

「Inbox (182)」というテキストを取得しようとしています。そのために、このコードを使用しています

    NSString *js_result = [webview1 stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('J-Ke n0').innerText"];

しかし、これは機能しません。私の結果はまったく何もありません。多くの代替手段を試しましたが、どれも機能しませんでした。ここで行う必要があるのは、「受信トレイ (182)」テキストを可能な限り抽出することだけです。ありがとう。

4

1 に答える 1

1

そのクラスには複数の要素があるため、JavaScriptが間違っていると思います。gmail にログインすると、次のように動作します。

document.getElementsByClassName('J-Ke n0')[0].innerText

ただし、本番環境でこれを使用するのはうんざりです。とてももろいようです。要素のクラスまたは順序は、Google によっていつでも変更される可能性があります。

また、JavaScript を実行する前に、ページが読み込まれていることを確認する必要があります。通常、これはwebViewDidFinishLoad:コールバックで実装されます。結果が得られず、JS が有効な場合、これがおそらく問題です。

于 2013-06-11T00:44:14.913 に答える