2017-09-22 6 views
0

J'ai des tests automatisés dans Selenium en utilisant .net, et j'ai utilisé Streamwriter pour copier des données d'une table dans une application web. Cela fonctionne très bien dans Chrome dans la mesure où je l'ai fait la streamWriter copier une ligne entière d'une table et append que d'une ligne dans un fichier csv .. à savoirStreamwriter mettant des cellules de tableau sur une nouvelle ligne dans MS Egde au lieu de la même ligne

DepartmentCodeDepartmentDescriptionTotalSpendTotalValue(%)SubjectivesLines 
1Dep-100054Department-10005415282.403.1033861884 
2Dep-100038Department-10003814282.292.9033962096 

Cependant Edge le même code met chaque cellule sur une nouvelle ligne ...

DepartmentCode 
DepartmentDescription 
TotalSpend 
TotalValue(%) 
Suppliers 
Transactions 
Directorates 
CostCentres 
Subjectives 
Lines 
1 
Dep-100054 
Department-100054 
15282.40 
3.10 
3 
3 
8 
6 
18 
84 
2 
Dep-100038 
Department-100038 
14282.29 
2.90 
3 
3 
9 
6 
20 
96 

le code pour le streamWriter est ...

using (StreamWriter sw = new StreamWriter(actualDataFileLocation, false)) 
     { 
      //Used for loop for number of rows 
      for (int i = 1; i <= RowCount + 3; i++) 
      { 
       if (i == 2) // | i == 3) 
       { 
        continue; 
       } 

       string line = string.Empty; 
       string tableData = null; 
       string finalXpath = null; 

       if (i == 1 || i == 3) 
       { 
        for (int j = 1; j <= ColCount; j++) 
        { 
         if (j == 1) 
         { 
          continue; 
         } 
         else 
         { 
          finalXpath = FirstPartHeader + i + SecondPartHeader + j + ThirdPartHeader; 
          tableData = driver.FindElement(By.XPath(finalXpath)).Text; 
          tableData = tableData.Replace(",", ""); 
          tableData = tableData.Replace(" ", ""); 
         } 
         line = line + string.Format(CultureInfo.CurrentCulture, "{0}", tableData); 
        } 
       } 
       else 
       { 
        finalXpath = FirstPart + i + SecondPart; 
        tableData = driver.FindElement(By.XPath(finalXpath)).Text; 
        tableData = tableData.Replace(",", ""); 
        tableData = tableData.Replace(" ", ""); 
        line = line + string.Format(CultureInfo.CurrentCulture, "{0}", tableData); 
       } 
       sw.WriteLine(line.ToString()); 
      } 
     } 

Toute aide sur ce serait très apprécié

+0

Bit de googling et trouvé que l'utilisation 'TableData = tableData.TrimEnd ('\ r', '\ n');' pour enlever le retour de chariot fonctionne pour l'en-tête ligne, mais pas les autres lignes de données dans la deuxième instruction else – alex

Répondre

0

peu plus googling et en utilisant Replace("\r", "") et Replace("\n", ""); a fait l'affaire