• 封装操作表格的公用类


    <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()
  • 相关阅读:
    vCenter6.7的简单安装与使用
    大家来找茬
    Android APP分享功能实现
    为免费app嵌入Admob广告
    Google Admob广告Android全攻略1
    开始Admob广告盈利模式详细教程
    android软件中加入广告实现方法
    onWindowFocusChanged重要作用 and Activity生命周期
    WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式
    android之intent显式,显式学习
  • 原文地址:https://www.cnblogs.com/sleeping-cat/p/8278599.html
Copyright © 2020-2023  润新知