Проверьте, содержит ли таблица <tr>элементов - PullRequest
0 голосов
/ 17 января 2019

У меня есть тест, который проверяет функциональность поиска таблицы. Он берет первую строку в таблице, получает некоторые данные из строки и затем вводит данные в окно поиска. Затем он снова ищет таблицу и затем проверяет данные из результатов поиска, если они совпадают с данными, которые были в таблице до поиска.

Проблема в том, что если данные не найдены, таблица не имеет элементов. Мой тестовый код вызывает исключение тайм-аута в этой части кода:

//Get search results
var resultRows = table.FindElements(By.TagName("tr"));
//If there are not results, search is not functional
if (resultRows != null && resultRows.Count > 0)
{
    //Iterate through search results
    foreach (var row in resultRows)
    {
        //Get columns for current row
        var resultCols = row.FindElements(By.TagName("td"));
        //If column 'Priceable item' value is different than original data, search is not functional
        if (resultCols[searchColumn].Text != searchData)
        {
            isValid = false;
        }
    }
}
else
{
    isValid = false;
}

return isValid;

Исключение выдается при достижении этой строки в отладчике:

var resultRows = table.FindElements(By.TagName("tr"));

Как я могу проверить, содержит ли таблица какие-либо элементы по тегу, прежде чем найдет все элементы?

1 Ответ

0 голосов
/ 17 января 2019

Пожалуйста, попробуйте найти элемент TR следующим образом

List<WebElement> resultRows = driver.findElements(By.xpath("//table/tbody/tr"));

//if your table has certain identifier/class
    //List<WebElement> rows = driver.findElements(By.xpath("//table[class='CLASS_NAME']/tbody/tr"));


if (resultRows != null && resultRows.Count > 0)
{
    //Iterate through search results
    foreach (var row in resultRows)
    {
        //Get columns for current row
        var resultCols = row.FindElements(By.TagName("td"));
        //If column 'Priceable item' value is different than original data, search is not functional
        if (resultCols[searchColumn].Text != searchData)
        {
            isValid = false;
        }
    }
}
else
{
    isValid = false;
}

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