使用Python中的splinter访问表

时间:2016-08-16 18:58:16

标签: python splinter

我正在尝试编写一个小的python脚本来抓取内部系统的跟踪细节。详细信息显示在下面的html表格中。我希望把它变成python元组:

(已加工,单位b门3,30-MAY-16 12:19) (创建,单位b门2,30-MAY-16 06:17)

例如,

。我正在使用Splinter。

<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"

我无法弄清楚我做错了什么?

1 个答案:

答案 0 :(得分:0)

我认为你的问题是你正在用css'tr'或'td'在你的桌子中寻找“tr”或“td”以及你的hable don中的任何“tr”和/或“td”没有这个课程

我建议您使用xpath查找要查找的元素