2016-05-24 9 views
-1

ソースを取得する前に、ページがSeleniumで読み込まれるのを待つ方法はありますか?私はページから情報を得ようとしていますが、javascriptがロードされているので、ソースにアクセスするだけで何も分かりません。私は現在、javascriptがロードされるのを待つためにtime.sleepを使用していますが、これを行うためのより速い方法がありますか?Selenium/Firefoxでページが読み込まれるのを待つ

Firefox.get(url) 
WebDriverWait(FireFox, timeout=60) 
time.sleep(5) 
source = Firefox.page_source 

私は必要な情報をページのソースから検索できますが、より速い方法がありますか?私は値を2秒か何か速くすることができましたが、1つの遅いページがプログラムを壊す可能性があります。 time.sleepを削除すると、javascriptが実行されず、プログラムが探している情報を見つけることができないため、プログラムが中断されます。

+0

htmlの例を示し、async javascriptによって入力される要素を示してください。 – user2272115

+0

@ user2272115私はVSCOリッパーで作業しているので、そのウェブサイトからの画像もあります。 https://vsco.co/vincentdemers/media/573bb798ee5e1d0c03edbe1f。私はできるだけ早く各ページから投稿される画像の日付を取得しようとしているので、任意の時間を待つ必要はありません。 – displayname

答えて

0

これは、ページソースを取得する前にイメージが表示されるのを待ちます。

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 

browser = webdriver.Firefox() 
browser.get('https://vsco.co/vincentdemers/media/573bb798ee5e1d0c03edbe1f') 
WebDriverWait(browser, 10).until(lambda d: d.find_element_by_css_selector('#ember610 > img').is_displayed()) 
source = browser.page_source 
browser.close 

任意の方法またはセレクタを使用して、待機する要素を見つけることができます。

+0

助けてくれてありがとう!私はあなたをアップアップしますが、私は評判はありません。 – displayname

関連する問題