2013-07-09 1 views
0

J'ai un projet d'aller sur un site web. Si le site Web ne peut pas être chargé et que le navigateur affiche une page avec du texte: «Cette page ne peut pas être affichée». Dans ce cas, je souhaite actualiser automatiquement le navigateur. Comment le programme détectera-t-il que ce site Web ne peut pas être chargé? . J'ai essayé Ping() pour vérifier la connexion, mais il semble que la connexion soit bonne. Jetez un oeil à mon code ci-dessous:C# - Comment détecter si un site Web renvoie une page avec du contenu "Cette page ne peut pas être affichée" avec Watin?

public void exam() 
     { 
      var ie = new IE(); 
      ie.GoTo("http://search.yahoo.com"); 
      ie.WaitForComplete(5);    
      if (ie.ContainsText("This page cannot be displayed")) 
      { 
       ie.Close();// or ie.Refresh() 
      } 

     } 

Il ne fonctionne pas. Aidez-moi!

Répondre

0

Je ne sais pas quel est votre type IE mais vous pouvez utiliser HttpWebRequest/HttpWebResponse et vérifier la propriété StatusCode de la réponse.

Par exemple: -

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.google.com"); 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
if (response.StatusCode == HttpStatusCode.NotFound) 
{ 
    //page not found 
} 
//etc.... 

Le HttpStatusCode ENUM peut être utile pour vérifier contre une variété d'états différents.

0

Vous codez bien semble juste enlever le temps de votre attente pour compléter Assurez-vous que le texte est identique à celui affiché dans le navigateur.

public void exam() 
    { 
     var ie = new IE(); 
     ie.GoTo("http://search.yahoo.com"); 
     ie.WaitForComplete();    
     if (ie.ContainsText("This page cannot be displayed")) 
     { 
      ie.Refresh(); 
     } 

    } 
Questions connexes