2016-09-22 4 views
0

セレンのWebドライブC#が、 "オブジェクト参照がオブジェクトのインスタンスに設定されていません"エラーでコードを作成するどのように私は正規のコードになったのですか?あなたは助けてもらえますか?セレンC#オブジェクトのインスタンスのエラー

private void Modul4_Siteimage() 
    {   
     try 
     { 
      IWebDriver driver = webDriverSelect(comboBox_Browser.Text); //browser seçilir     


      for (int i = 0; i < lst_Result.Items.Count; i++) 
      { 

       driver.Navigate().GoToUrl(lst_Result.Items[i+1].ToString()); //link seçilir 


       foreach (var item in driver.FindElements(By.ClassName("lazyOwl"))) 
       { 

        if (doesImageExistRemotely(item.GetAttribute("src").ToString(), "image/jpeg")) 
         { 
          lst_Result.Items.Add("Doğru " + lst_Result.Items[i].ToString()); 
         } 
         else 
         { 
          lst_Result.Items.Add("HATA " + lst_Result.Items[i].ToString()); 
         } 

       } 

      } 
      driver.Close(); 

     } 
     catch (Exception exx) 
     { 
      MessageBox.Show("Hata " + exx.Message); 
     } 

    } 

答えて

0

あなたはdriver.Navigate().GoToUrl(lst_Result.Items[i+1].ToString());により、forループの最後の反復のためにnull.ToString()にアクセスしようとしています。ループを次のように変更することができます:

for (int i = 0; i < lst_Result.Items.Count-1; i++) 
{ 
    ... 
} 
0

5つのアイテムがlst_Resultにあるとします。

このライン:

driver.Navigate().GoToUrl(lst_Result.Items[i+1].ToString()); 

は存在しない項目6に言及しています。 forループは、を4に反復します。これは最後の反復であり、になりません。従ってi == 4および[i + 1] == 5。しかし、arrayは0から始まります。したがって、lst_Resultに5つの項目がある場合、最後の項目は4です。(0,1,2,3,4)最後の反復では、配列の位置 '5'をチェックします。 nullです。.ToString()は変換できません。

関連する問題