1

我使用Selenium瀏覽多個網站並存儲它們的標記。Selenium:pageLoadTimeout不適用於經常重定向的網站

爲了加快速度,我設置了pageLoadTimeout扔對於需要太長時間負載網站的異常:

driver.manage().timeouts().pageLoadTimeout(20, TimeUnit.SECONDS); 

不過,這似乎並不爲網站不斷重定向工作。作爲一個例子,採取這個網站:https://www.pickupthevalues.com/SignUp.aspx

有沒有辦法讓這些網站超時?我不關心內容,我只想從我的driver.get(url)聲明中返回。

+0

如果你只是存儲標記,那麼你應該使用更快的東西,比如簡單的'cURL'。除非你實際上正在與頁面上的元素進行交互。那麼硒很好 – sircapsalot

+0

我使用Selenium的原因是因爲我想要標記如何呈現給用戶。這可能與僅使用由JS/AJAX引起的cURL有很大不同 – schlimpf

回答

0

你可以等待,直到JS返回頁面完整的狀態。

private WebDriverWait wait; 

try 
{ 
    wait = new WebDriverWait(driver, TimeSpan.FromSeconds(60));     
    wait.Until(driver1 => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete")); 
} 
catch(Exception ex) 
{}