2012-12-13 16 views
8

私はプロキシ経由でWebサイトをダウンロードする簡単なコードを実行していますが、プロキシが遅くなることがあり、WebDriver .get(url)無期限にブロックする。Python Selenium WebDriver(url)関数を取得するタイムアウトを追加する方法

この機能のタイムアウトを設定するWebDriver用のPythonコードがありますか?検索を通じて、私はjavaのために働く技術しか見つけられませんでした。私が使用したものそこにすべてのWeb cretentsについてはdocs

selenium.webdriver.remote.webdriver.set_script_timeout(TIME_TO_WAIT)

Set the amount of time that the script should wait before throwing an error. 

time_to_wait: The amount of time to wait 

Usage: 

driver.set_script_timeout(30) 
+0

はそれを死ぬどのくらい:セレンはそうソケットライブラリを使用して、私はソケットモジュール上のタイムアウトを設定し、これは我々が(ページの読み込みを停止します)ブラウザにエスケープキーを送信するために使用することができ、エラーがスローされますダウンロードするには?私は、約2分後に 'driver.get(URL)'を使ってページが表示されていた状況がありました。 –

答えて

4

この問題を解決するのはこれでした。

socket.setdefaulttimeout(2) 
try: 
    driver.get(pageLink) 
except socket.timeout: 
    #send ESCAPE key to browser 
+0

それは役に立つと思われますが、暗黙の(明示的な? )cal。また、WebDriverには恐ろしいドキュメントがありますので、エラーをキャッチするために実装する方法がわかりません。 –

+0

私も "driver.implicitly_wait(5)"を試みていますが、何もしていません。私はちょうどXの時間後にまだ実行している場合、 "driver.get(url)"呼び出しを終了したいですが、WebDriverがこれを簡単にしていないようです。このリンクはどちらも役に立ちません(常に最初に出てくる):http://code.google.com/p/selenium/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Stars%20Type% 20Status%20Priority%20Milestone%20Owner%20Summary&groupby =&sort =&id = 687 –

+0

あなたは何が起こると予想されているのか知るのに役立ちますか? TimeoutExceptionがスローされたときにタイムアウトが発生したときを私が理解しています。 – srhegde

7

でこれを見つけた

driver.get(url) 
+0

グローバルソケットタイムアウトを設定するのは良い考えではありません。 – erm3nda

関連する問題