2017-10-18 115 views
0

我正在自動與網站進行交互以上傳文件並下載結果。不經常,但有一次,網站永不加載。我收到以下錯誤。頁面不會刷新

[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

如果頁面上沒有顯示任何內容,腳本將會失敗,因爲您沒有處理異常。

行之後會拋出TimeoutException異常

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

所以,如果你想,雖然出現異常,你可以簡單地捕獲了異常,繼續你的腳本事件。

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