Таблицы Selenium C # - чтение каждого значения и добавление его и возврат в список <string> - PullRequest
0 голосов
/ 06 февраля 2019

Я могу читать значения таблицы, НО я не могу добавить значения внутри цикла foreach и вернуть их как List<string>.

Пожалуйста, поделитесь своим подходом, и он будет очень полезен

IWebElement tableElement = driver.FindElement(By.XPath("//div[@id='table']"));
IList<IWebElement> tableRow = tableElement.FindElements(By.TagName("tr"));
IList<IWebElement> rowTD;

foreach (IWebElement row in tableRow)
{
    rowTD = row.FindElements(By.TagName("td"));
    //add the values in list?? 
}

return list

После этого, как я могу добавить текстовые значения td в List<string>?Я хочу, чтобы эта функция возвращала список.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете объединить ответ Михеля с LINQ, чтобы сделать это еще более кратко - вообще без цикла foreach:

Сначала добавьте

using System.Linq;

ЗатемВы можете заменить весь блок кода на:

return driver.FindElement(By.XPath("//div[@id='table']"))
          .FindElements(By.TagName("td"))
          .Select(e => e.Text)
          .ToList();
0 голосов
/ 06 февраля 2019

Я предполагаю, что вы пытаетесь вернуть все элементы данных таблицы в виде списка строк.Если вы хотите придерживаться подобного подхода только для получения текста элементов td, то я бы сделал что-то вроде этого:

IWebElement tableElement = driver.FindElement(By.XPath("//div[@id='table']"));
IList<IWebElement> tableDataElements = tableElement.FindElements(By.TagName("td"));

var reults = new List<string>();

foreach (IWebElement tableDataElement in tableDataElements)
{
    var tableData = tableDataElement.Text;
    reults.add(tableData);
}

return reults;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...