Как перебрать таблицу и вывести только значения в определенном столбце Селен Python - PullRequest
0 голосов
/ 02 июля 2019

У меня есть HTML-таблица, в которой есть строки и данные в строках без имен классов или идентификаторов.Xpath является переменной, поэтому я не могу использовать ее, это зависит от того, что отправлено.

Я знаю, что есть 17 строк (однако количество строк может варьироваться), и программа проверяет это, когда я пытаюсь print(len(rows))

Я пытаюсь перебрать строки и распечатать только данные во втором столбце.

table_id = browser.find_element_by_id('ExpApprovalsTable')
rows = table_id.find_elements_by_tag_name("tr")

for row in rows:
    col = row.find_elements_by_tag_name("td")[1]
    print(col.text)

В настоящее время я получаю IndexError:

    col = row.find_elements_by_tag_name("td")[1]
IndexError: list index out of range

Любойпомощь очень ценится!

1 Ответ

0 голосов
/ 02 июля 2019

Из вашей ошибки я могу понять, что вне диапазона, и число может быть ноль. Вам необходимо получить количество строк таблицы, используя список тегов tr, что можно сделать с помощью следующего кода c #.

string myxpath=""; //XPath of your table till tbody tag before tr tags
IWebElement list = driver.FindElement(By.XPath());
List<IWebElement> tableCount= list.FindElements(By.XPath("./tr")).ToList(); //this will give count of all tr tags in your table.

for (int i = 1; i <= tableCount.Count; i++)
{
 // your required operation, you can use the for loop variable to iterate through each row shown in below demo line

driver.FindElement(By.XPath(myxpath+"/tr[" + i + "]"+"/td[3]")).Displayed
}

дайте мне знать, если я правильно понял вашу проблему, и это работает

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