Проблема преобразования типов данных при 2-м запуске.
При первом запуске кода smothly и загрузке пользователя во 2-й раз возникает исключение для преобразования типа данных. Двойное преобразование в строку при полужирном внутреннем цикле для чтения пароля 1234 из столбца B.
for (rCnt = 2; rCnt <= range.Rows.Count; rCnt++) { for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++) { Loginname = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value; <big>(for (cCnt = 2; cCnt <= range.Columns.Count; cCnt++) { Password = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value; }</big> }
Файл Excel Как посмотреть
Строки ColumnA (Имя Пользователя) Столбец B (Пароль)
1 ab ab12
2 cd 1234
Что я уже пробовал:
<pre lang="c#"><pre>using System; using System.Text; using System.Collections.Generic; using System.Threading; using System.Linq; using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.CSharp; using OpenQA.Selenium; using OpenQA.Selenium.Firefox; using OpenQA.Selenium.Support.UI; using Excel = Microsoft.Office.Interop.Excel; namespace Reading_from_Excel { [TestClass] public class ReadingExcel { string Loginname; string Password; [TestMethod] public void TestMethod1() { int rCnt; int cCnt; string workbookPath = "e:\\Test\\Reading_from_Excel\\Reading_from_Excel\\TestData.xlsx"; Excel.Application excelApp; Excel.Workbook excelWorkbook; Excel.Sheets excelSheets; Excel.Worksheet excelWorksheet; Excel.Range range; string currentSheet = "DataSet"; excelApp = new Excel.Application(); excelWorkbook = excelApp.Workbooks.Add(workbookPath); excelSheets = excelWorkbook.Sheets; excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet); range = excelWorksheet.UsedRange; //Excel.Range myIDBinder = (Excel.Range)excelWorksheet.get_Range("B2", "B2"); //string loginID = myIDBinder.Value.ToString(); //Excel.Range myPasswordBinder = (Excel.Range)excelWorksheet.get_Range("C2", "C2"); //string usrPwd = myPasswordBinder.Value.ToString(); for (rCnt = 2; rCnt <= range.Rows.Count; rCnt++) { for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++) { Loginname = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value; for (cCnt = 2; cCnt <= range.Columns.Count; cCnt++) { Password = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value; } } string baseURL = "https://www.mycabtravel.com"; FirefoxDriver driver = new FirefoxDriver(); driver.Navigate().GoToUrl(baseURL); driver.FindElement(By.Id("loginlink")).Click(); driver.FindElement(By.Id("login-popup")); driver.FindElement(By.Id("userFieldDiv")); driver.FindElement(By.Id("headerSubView:inputUserName:input")).SendKeys(Loginname); driver.FindElement(By.Id("passwordFieldDiv")); driver.FindElement(By.Id("headerSubView:inputPassword:input")).Clear(); driver.FindElement(By.Id("headerSubView:inputPassword:input")).SendKeys(Password); driver.FindElement(By.Id("headerSubView:loginBtnId")).Click(); } } } }