2016-09-22 44 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());访问的null.ToString()的for循环的最后一次迭代。您可以将回路更改为:

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

假设您在lst_Result中有5项。

这条线:

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

指的是第6项,其中不存在。 for循环迭代i至4,这是不再为< lst_Results.Items.Count之前的最后一次迭代。所以i == 4[i + 1] == 5。但是,array从0开始。因此,如果lst_Result中有5个项目,则最终条目为4.(0,1,2,3,4)在上次迭代中,它会检查数组中的位置'5'。这是null,并且不能转换.ToString()

相关问题