1

UPDATE:ストップ無限GET

GET(URL)のウェブサイトの一部のhttps部品、(広告ネットワークなど)が好きではなかった何という私はプロキシを使用したときに決して終えない理由プロキシ

私はFirefoxでSelenium Webdriverを使用していますが、何らかの種類のユーザーとのやりとりがない限り、無期限に読み込まれる特定のWebサイトにアクセスしようとすると(実際にはそれほど時間がかかりませんでした) )、私はちょうどそれらが永久に読み込まれるのを防ぎたい。私はWebdriverのJavaライブラリを使用しますが、Jythonではコードを作成します(したがって ';'または 'new xxx'はありません)。

私は

driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS) 
driver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS) 
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS) 
driver.get(...) 
driver.close() 

を試みたが、それぞれの時間は、getだけで停止しません。

私は、プロキシを経由して、ブラウザで起動するDesiredCapabilitiesを使用します。私は、プロキシを設定しない場合は

proxyServer = '127.0.0.1:8080' 
proxy = Proxy() 
proxy.setHttpProxy(proxyServer) 
proxy.setSslProxy(proxyServer) 
capabilities = DesiredCapabilities() 
capabilities.setCapability(CapabilityType.PROXY, proxy) 
driver = FirefoxDriver(capabilities) 

、ウェブサイトが正常に処理されます。プロキシを使用している場合にのみ、Webサイトがストールし、get()を終了することはありません。これはすべてのサイトで問題ありません。一部のサイトにこの問題があります。

何が原因なのでしょうか?プロキシ設定では、ブラウザまたはセレンのいずれかがget()が完了したというシグナルを出すメッセージが表示されないようです。

+0

どのような?実際にこのページをブラウザで開くと、ロードは終了しません。私はこれをウェブページのバグと見なします。 – pagep

+0

get(url)を使用して単純なプリント(「Hello World」)をフォローアップすると、決してプリントには到達しません。ウェブページがバグのときは、ブラウザに「okを止める」と言って例外を投げたいと思う。 – Peter1807

+0

プロキシを設定するとこの問題が発生するようです。それは特定のウェブサイト上の唯一の問題です。私はここで一つの例を挙げることができるのか分かりません。 – Peter1807

答えて

0

要素の場合は30秒間待つことができます。 HTMLタグを読み込みページに表示します。要素が30秒間に読み込まれない場合は、例外をキャッチして移動します。

try 
{ 
    new WebDriverWait(driver, 30).until(ExpectedConditions.presenceOfElementLocated(By.tagName("html"))); 
} 
catch (TimeoutException e) 
{ 
    // do something when this exception is caught 
} 
+0

私はそれをしますが、get(url)は決して終了しません。しかし、私は自分の問題が何であるかを考え出しました。ウェブサイトのいくつかの部分、広告とクリックのホスティング業者は、彼らとウェブサイトとの間に直接のhttps接続がないことを好まなかった。その理由は、私がプロキシを使用したときにサイトが本当にロードを完了しなかったからです – Peter1807