zoukankan      html  css  js  c++  java
  • 封装操作表格的公用类

    <html>
    <head>
        <title>设置文本框属性</title>
        <meta http-equiv="Content-Type" content="text/html"; charset="UTF-8">
    </head>
    <body>
        <table width="400" border="1" id="table">
            <tr>
                <td align="left">
                    <p>第一行第一列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第一行第二列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第一行第三列</p>
                    <input type="text"></input>
                </td>
            </tr>
            <tr>
                <td align="left">
                    <p>第二行第一列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第二行第二列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第二行第三列</p>
                    <input type="text"></input>
                </td>
            </tr>
            <tr>
                <td align="left">
                    <p>第三行第一列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第三行第二列</p>
                    <input type="text"></input>
                </td>
                <td align="left">
                    <p>第三行第三列</p>
                    <input type="text"></input>
                </td>
            </tr>
        </table>
    </body>
    </html>

    1.存放table对象

    #!usr/bin/env python  
    #-*- coding:utf-8 -*-
    
    class Table(object):
        #定义一个私有属性__table,用于存放table对象
        __table = ''
    
        def __init__(self,table):
            #Table类的构造方法
            self.setTable(table)
    
        def setTable(self,table):
            #对私有属性__table进行赋值操作
            self.__table = table
    
        def getTable(self):
            #获取私有属性__table的值
            return self.__table
    
        def getRowCount(self):
            #返回table对象中所有的行tr标签元素对象
            return len(self.__table.find_elements_by_tag_name('tr'))
    
        def getColumnCount(self):
            #获取表格对象中的列数
            return len
                (self.__table.find_elements_by_tag_name('tr')[0].find_elements_by_tag_name('td'))
    
        def getCell(self,rowNo,colNo):
            #获取表格中某行某列的单元格对象
            try:
                #找到表格中的某一行,因为行号从0开始
                #例如要找第三行,则需要进行3 - 1 = 2来获取第三行tr元素对象
                currentRow = self.__table.find_elements_by_tag_name('tr')[rowNo - 1]
                #在找到的某行基础上,再找这行中的某一列,列号也从0开始
                currentCol = currentRow.find_elements_by_tag_name('td')[colNo - 1]
                #返回找到的单元格对象
                return currentCol
            except Exception as e:
                raise e
    
        def getWebElementInCell(self,rowNo,colNo,by,value):
            #获取表格中某行某列的单元格中某个页面元素对象,
            # by表示定位页面元素的方法,比如id,
            # value表示定位表达式,比如query
            try:
                currentRow = self.__table.find_elements_by_tag_name('tr')[rowNo - 1]
                currentCol = currentRow.find_elements_by_tag_name('td')[colNo - 1]
                element = currentCol.find_element(by = by,value =value)
                return element
            except Exception as e:
                raise e

    2.

    #!usr/bin/env python  
    #-*- coding:utf-8 -*-
    #封装操作表格的公用类
    
    from selenium import webdriver
    import unittest
    import time
    from Table import Table
    
    class TestTableOpertion(unittest.TestCase):
        def setUp(self):
            self.driver = webdriver.Chrome()
    
        def testTable(self):
            url = 'e:\html.html'
            self.driver.get(url)
            #获取被测试页面中的表格元素,并存储子啊webTable变量中
            webTable = self.driver
            webTable.find_elements_by_tag_name('table')
            #使用webTable变量对table类进行实例化
            table = Table(webTable)
            #统计表格的行数
            print(table.getRowCount())
            #统计表格的列数
            print(table.getColumnCount())
            #获取表格中第二行第三列单元格对象
            cell = table.getCell(2,3)
            self.assertAlmostEqual('第二行第三列',cell.text)
            #获取表格中第三行第二列单元格中的输入对象
            cellInput = table.getWebElementInCell(3,2,'tag name','input')
            #在找到的输入框中输入“第三行的第二列表格被找到”关键字内容
            cellInput.send_keys('第三行的第二列表格被找到')
            time.sleep(3)
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/sleeping-cat/p/8278599.html
Copyright © 2011-2022 走看看