2017-12-26 7 views
2

私は、セレンを使ってイベントに関する新聞のレポートを返すデータベースとやり取りしています。検索クエリを実装するたびに、データベースは新しいページを開き、イベントに関するすべての新聞のレポートを読み込み始めます。 Webページには、見つかった関連レポートの総数を報告する要素があります。ページが完全に読み込まれる前に番号が変更されます。セレンを使用してページが読み込まれているかどうかを確認するにはどうすればよいですか?

私の質問は、ページが読み込まれているかどうかを判断する方法です。私の現在の戦略は、ループ内の総レポート数をチェックし、2つのループが同じレポート数をレポートしたときにページが完了したと判断することです。これが良い戦略であるかどうかはわかりません。

+0

これを助けることでレンダリングされるようにtextのを待つ最短の時間を過ごすことができます。until(条件) 'https://stackoverflow.com/questions/26566799/how-to-wait-until-the-page-is-loaded-with-selenium-for-python – wkzhu

答えて

0

私の現在の戦略は、ループ内の合計レポートの数を確認し、2つのループが同じ総数のレポートを報告したときにページが完了したと判断することです。これが良い戦略であるかどうかはわかりません。

です。

「ページが読み込まれている」という意味で、意図した方法でやりとりでき、必要な要素を制御できるという意味で普遍的な規則はありません。カウンタをチェックする - ロードされる結果の量は、「待機」に使用する一般的な条件です。通常はExplicit Waitです。

結果カウンタは、ページに無限のスクロールページングがある場合に特によく使用されます。スクロールするたびに、現在の結果の数がスクロール前のものよりも大きくなったことがチェックされます。結果の新しい部分が到着し、再びスクロールすることができます。

0

データベース(おそらくButtonまたはLink)と対話しているように、データベースは新しいページを開き、イベントに関するすべての新聞報道をロードするために開始し、そう("return document.readyState").equals("complete")をevalutingはこちら私たちを助けにはなりません。あなたの質問文の1として

正確な方法ですが、あなたはソリューションを実装する方法上の任意の光を投げていない

My current strategy is to check the number of total reports in a loop and decides the page is complete when two loops report the same number of total reports.

はい

最も効果的な解決策を誘導するであろうWebDriverWait下記のいずれかに設定expected_conditions句有する:

この戦略は、HTML DOM

関連する問題