2015-09-13 50 views
-2

如何獲得特定列的位置對網頁進行查找表上存在元素,如何讓目前的行數表如何使用硒

<TR> 
    <TD>Table Data</TD> 
    <TD>More Table Data</TD> 
    </TR> 
    <TD>More Table Data</TD> 
    <TD>Table Data</TD> 
    </TR> 

上述考慮作爲一個表結構

+1

歡迎來到SO!在發佈問題時,添加與您的問題相關的代碼或您想要實現的目標。它可以幫助其他人找到解決問題的辦法。 – Lauromine

回答

-1

HTML代碼段的表,你可以看到,表主要由兩個標籤組成。 TR and TD

TR表示在表和TD行表示表列中。

下面是簡單的代碼片段,它顯示瞭如何找到表中存在的行數和列數。

int Row_count = driver.findElements(By.xpath("/table/tbody/tr")).size(); 

System.out.println("Number Of Rows = "+Row_count); 

注:Xpath的總會有所不同,但標籤/臺/ TBODY/仍將在大多數情況下一樣。

int Col_count = driver.findElements(By.xpath("/table/tbody/tr[1]/td")).size(); 

System.out.println("Number Of Columns = "+Col_count); 

**注意:*** tr [1]/td *選擇表中的第一行,並給出該表中的所有列。

以同樣的方式,您可以通過更改Xpath邏輯來輕鬆獲取Web表中存在的任何Web元素。

+0

請提及Downvote的原因。 –

-1

是有沒有可以用來識別表格的屬性?還是會需要表格元素的索引?你能提供示例url/html嗎?

from bs4 import BeautifulSoup 
soup = BeautifulSoup(page) 
table = soup.find("table", { "class" : class_name }) 
print len(table.findAll("tr")) 

我通常發現使用beautifulsoup /大熊貓爲這些類型的問題dataframes容易..例如使用維基百科如下:

import pandas as pd 
from bs4 import BeautifulSoup 
import urllib2 


car_data = pd.DataFrame() 

model = 'Tesla_Model_S' 

wiki = "https://en.wikipedia.org/wiki/{0}".format(model) 
header = {'User-Agent': 'Mozilla/5.0'} 
req = urllib2.Request(wiki,headers=header) 
page = urllib2.urlopen(req) 
soup = BeautifulSoup(page) 
table = soup.find("table", { "class" : "infobox hproduct" }) 

for row in table.findAll("tr")[2:]: 
    try: 
     field = row.findAll("th")[0].text.strip() 
     val = row.findAll("td")[0].text.strip() 
     car_data.set_value(model,field,val) 
    except: 
     pass 

print car_data