在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()