Selenium 對表格table處理


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM