2016-03-03 32 views
0

我正在使用網格模式運行硒測試。 每當我無法找到頁面中的一個元素,我收到以下異常Seleneium WebDriver - 獲取不同的異常

「的HTTP請求發送到遠程服務器的webdriver爲URL http://localhost:4444/wd/hub/session/5fe58b67-491c-4b72-9a3a-a6dc790cc29d/element 60秒後超時。」

我期待着一個異常,就像NoSuch Element found。但我得到超時。在這個任何指針將是沒什麼太大的幫助

的代碼如下

try 
{ 
    switch (findBy.ToLower()) 
    { 
     case "classname": 
      webElement = driver.FindElement(By.ClassName(findByValue)); 
      break; 
     case "cssselector": 
      webElement = driver.FindElement(By.CssSelector(findByValue)); 
      break; 
     case "id": 
      webElement = driver.FindElement(By.Id(findByValue)); 
      break; 
     case "linktext": 
      webElement = driver.FindElement(By.LinkText(findByValue)); 
      break; 
     case "name": 
      webElement = driver.FindElement(By.Name(findByValue)); 
      break; 
     case "partiallinktext": 
      webElement = driver.FindElement(By.PartialLinkText(findByValue)); 
      break; 
     case "tagname": 
      webElement = driver.FindElement(By.TagName(findByValue)); 
      break; 
     case "xpath": 
      webElement = driver.FindElement(By.XPath(findByValue)); 
      break; 
    } 
} 
catch (Exception e) 
{ 
    return null; 
} 

非常感謝

+0

當您使用顯式等待時發生超時異常,並且如果在等待給定時間限制後未找到元素,則會引發超時異常。 –

回答

0

潘卡Katiyar是正確的,因爲你使用的是明確的等待發生超時。硒也有一個隱含的等待,這說明等待很長時間,如果元素仍然不顯示,繼續前進。

您也可以嘗試使用等待,直到預期的條件,並將它們添加到您的所有開關case語句。