2017-10-18 16 views
0

ファイルをアップロードして結果をダウンロードするために、Webサイトとのやりとりを自動化しています。頻繁ではありませんが、しばらくしてからサイトが読み込まれることはありません。次のエラーが表示されます。ページを更新しない

[302.321][SEVERE]: Timed out receiving message from renderer: 299.536 
[302.323][SEVERE]: Timed out receiving message from renderer: -0.003 
Exception in thread "main" org.openqa.selenium.TimeoutException: timeout 
(Session info: chrome=61.0.3163.100) 
(Driver info: chromedriver=2.33.506120 
(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),platform=Windows NT 6.2.9200 x86_64) (WARNING: The server did not provide any stacktrace information) 
Command duration or timeout: 300.01 seconds 

スクリプトは、ifステートメントで負と正の両方のパスを使用して実行されました。しかし、ページに何も表示されなければ、リフレッシュするのではなく失敗します。

WebDriver driver = new ChromeDriver(); 
    WebDriverWait wait = new WebDriverWait(driver, 5);  
    driver.get("http://apps.gdgps.net/apps_file_upload.php"); 
    System.out.println("test a"); 

    List<WebElement> upload = driver.findElements(By.cssSelector("input[class*='upfile_ultimo']")); 
    if (upload.isEmpty()) 
    { 
     System.out.println("failed"); 
     wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id='upload_button']"))); 
     driver.navigate().refresh(); 
     System.out.println("next"); 
     driver.findElement(By.cssSelector("input[class*='upfile_ultimo']")).click(); 
    } 
    else 
    { 
     upload.get(0).click(); 
    } 

ページを手動で更新することができ、すぐに読み込まれ、続けられます。

+0

フレーズは質問できますか?あなたが求めていることは明らかではないと思います。 – asbachb

+0

あなたは 'TimedOutException'を受け取りますか? –

+0

@GaurangShah、彼は彼が投稿した出力に従っています。 – asbachb

答えて

0

ページスクリプトに何も表示されない場合は、例外を処理していないため、失敗します。ライン後

だから

wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id='upload_button']"))); 

TimeoutExceptionを投げるでしょうあなたは例外が発生しても、スクリプトのイベントを継続したい場合、あなたは単にその例外をキャッチすることができます。

try{ 
     wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[id='upload_button']"))); 
    }catch (TimeoutException te){ 
     System.out.print("Timeout for waiting for element"); 
    } 

しかし、あなたの場合、最良の解決策はです。

  • ページのタイムアウトを設定し、より

  • 30 secondsに明示的な待ち時間を増やします。 driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);

+0

ありがとうございます。しかし、問題は解決しません。あなたのコードをifステートメントの前と、wait.untilがすでに存在していたifステートメントの途中に追加しました。私はまだ、エラーを取得しています。私が試していないこのコードのための別の配置はありますか? – Iakona

+0

どのラインにエラーが発生していますか、どのエラーが表示されていますか。 –

+0

最初の投稿と同じエラーです。実際の問題は、このウィンドウが全くロードされない場合にリフレッシュする必要があることです。それが問題になるほど頻繁に起こります。私のコードは凍結し、エラーは消え、死ぬ。後で(何かのような)ブラウザがロードされたことを示す5分が経過したらブラウザをリフレッシュするようにプログラムしようとしていました。私はそれを手動で実行することはできますが、それは機能しますが、自動化できませんでした。あなたの専門知識のために、再度、ありがとう。 – Iakona

関連する問題