在web頁面中經常會遇到table表格,特別是后台操作頁面比較常見
一、認識table
1.首先看下table長什么樣,如下圖,這種網狀表格的都是table
二、table特征
1.table頁面查看源碼一般有這幾個明顯的標簽:table、tr、th、td
2.<table>標示一個表格
3.<tr>標示這個表格中間的一個行
4.</th> 定義表頭單元格
5.</td> 定義單元格標簽,一組<td>標簽將將建立一個單元格,<td>標簽必須放在<tr>標簽內
三、定位table
xpath定位table
1.舉個例子:想定位表格里面的“衣服”元素,這里可以用xpath定位:
//*[@id="table"]/tbody/tr[2]/td[1]
2.這里定位的格式是固定的,只需改tr和td后面的數字就可以了.如第三行第二列tr[3]td[2].
使用封裝對表格處理 #對表格進行處理 from selenium import webdriver from time import sleep #表格處理 class Table(): def __init__(self,driver, table_selector): #對於driver的控制, table的定位 self.driver = driver self.table = table_selector def get_cell_value(self, row, column): #//*[@id="table"]/tbody/tr[2]/td[1] xpath = self.table + "/tbody/tr["+ str(row) + "]/td["+ str(column) +"]" return self.driver.find_element_by_xpath(xpath).text #程序入口 if __name__ == "__main__": #綁定Chromedriver driver = webdriver.Chrome() driver.maximize_window() sleep(1) #打開表格頁面 driver.get("file:///C:/UI/testtable.html") sleep(1) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[2]/td[1]').text) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[2]/td[2]').text) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[2]/td[3]').text) # sleep(1) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[4]/td[1]').text) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[4]/td[2]').text) # print(driver.find_element_by_xpath('//*[@id="table"]/tbody/tr[4]/td[3]').text) table = Table(driver, '//*[@id="table"]') print(table.get_cell_value(2,1)) print(table.get_cell_value(2,2)) print(table.get_cell_value(4,2)) driver.quit()