2016-08-16 8 views
0

私は、内部システムの詳細を追跡する小さなPythonスクリプトを作成しようとしています。詳細は以下のHTML表に示されています。私はPythonのタプルにそれを回すために探しています:Pythonでsplinterを使用してテーブルにアクセスする

(加工し、ユニットBのドア3、30-MAY-16 12:19) (作成、ユニットBのドア2、30-MAY-16 6時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" 

私はできません私が間違ってやっているものをorkから外す?

答えて

0

あなたの問題は、css 'tr'または 'td'とあなたのhableの「tr」および/または「td」のいずれかでテーブルに「tr」または「td」を探していることだと思いますこのクラスを持っていない

私はこの場合には、xpathを使用して検索する要素を探すことをお勧めします

関連する問題