Доступ к таблице с помощью splinter в Python

Я пытаюсь написать небольшой скрипт на Python, который очищает данные отслеживания для внутренней системы. Подробности представлены в html-таблице ниже. Я хочу превратить его в кортежи Python:

(обработано, блок b, дверь 3, 30 мая 16 12:19) (создано, блок b дверь 2, 30 мая 16 06:17)

Например. Я использую Сплинтер.

<table class="resultView" cellspacing="0" rules="all" border="1" style="width:540px;border-collapse:collapse;">
    <tr class="clearHeader">
        <th align="left" scope="col">Activity</th><th scope="col">&nbsp;</th><th align="center" scope="col">Date</th>
    </tr>
    <tr class="statusRow">
        <td style="width:30%;">Processed</td>
        <td align="center"> Unit B<br /> Door 3 </td>
        <td align="center" style="width:20%;">30-May-16<br/>12:19</td>
    </tr>
    <tr class="statusAlternate">
        <td style="width:30%;">Created</td>
        <td align="center"> Unit B <br /> Door 2</td>
        <td align="center" style="width:20%;">30-May-16<br/>06:17</td>
    </tr>
</table>

Если я бегу:

for update in browser.find_by_css('tr'):
    print update.find_by_css('td')

он отображает:

[<splinter.driver.webdriver.WebDriverElement object at 0x103085e90>,  
 <splinter.driver.webdriver.WebDriverElement object at 0x103085ed0>, 
 <splinter.driver.webdriver.WebDriverElement object at 0x1030b4050>]

Чего я и ожидал. Однако я не могу получить доступ к значению из него. Меняем строку на:

  print update.find_by_css('td').value

дает ошибку:

AttributeError: 'ElementList' object has no attribute 'value'

Это список, поэтому я пытаюсь получить доступ к первому элементу в списке с помощью

 print update.find_by_css('td').first.value

Затем я получаю эту ошибку:

splinter.exceptions.ElementDoesNotExist: no elements could be found with css "td"

Я не могу понять, что я делаю неправильно?


person Community    schedule 16.08.2016    source источник


Ответы (1)


Я думаю, что ваша проблема в том, что вы ищете «tr» или «td» в своей таблице с помощью css «tr» или «td», и любой из «tr» и/или «td» в вашем hable не имеет этот класс

Я предлагаю вам в этом случае использовать xpath для поиска элементов, которые вы хотите найти

person Angel F    schedule 15.12.2016