博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WebTable 扩展
阅读量:5925 次
发布时间:2019-06-19

本文共 2204 字,大约阅读时间需要 7 分钟。

1 # coding:utf-8 2 """ 3 页面 table处理 4 """ 5  6 from selenium import webdriver 7 from selenium.webdriver.common.by import By 8 from selenium.common.exceptions import NoSuchElementException 9 10 class WebTable(object):11     12     def __init__(self, webElement):13         self.webTable = webElement14     15     #得到表格中的行数    16     def getRowCount(self):17         rowConunts = self.webTable.find_elements(By.TAG_NAME, 'tr')18         return len(rowConunts)19     20     #得到指定行的列数21     def getColCount(self, rowIdx):22         try:23             rowCounts = self.webTable.find_elements(By.TAG_NAME, 'tr')24             25             if len(rowCounts) < rowIdx:26                 raise "当前行数大于表格行数"27                 28             #取得当前的 tr29             rowNum = rowCounts[rowIdx]30             31             #计算当前行的 td 数32             colCounts = rowNum.find_elements(By.TAG_NAME, 'td')33             return len(colCounts)34         except NoSuchElementException as e:35             raise NoSuchElementException("Failed to get the cell")36         37         38     #得到指定单元格内容, 传入指定的行数、列数作为参数39     def getCellText(self, rowIdx, colIdx):40         try:41             rowCounts = self.webTable.find_elements(By.TAG_NAME, 'tr')42             43             if len(rowCounts) < rowIdx:44                 raise "当前行数大于表格行数"45             46             #得到对应的行数47             currentRow = rowCounts[rowIdx]48             #获取行中所有的td49             td = currentRow.find_elements(By.TAG_NAME, 'td')50             51             if len(td) < colIdx:52                 raise "当前列数大于表格列数"53             54             #取得对应的单元格55             cell = td[colIdx]56             return cell.text57         except NoSuchElementException as e:58             raise NoSuchElementException("Failed to get the cell")59     60 if __name__ == '__main__':61     driver = webdriver.Firefox()62     driver.get('http://www.w3school.com.cn/tags/tag_table.asp')63     temp_webTable = WebTable(driver.find_element(By.TAG_NAME, 'table'))64     print temp_webTable.getRowCount()65     print temp_webTable.getColCount(3)66     print temp_webTable.getCellText(3, 2)     #行和列的索引从0开始

 

转载于:https://www.cnblogs.com/Roger1227/p/3219632.html

你可能感兴趣的文章
Oracle表空间(tablespaces)
查看>>
Python 3.* print 出现SyntaxError: invalid syntax
查看>>
【Bootstrap-插件使用】Jcrop+fileinput组合实现头像上传功能
查看>>
Determining Current Block and Current Item in Oracle Forms
查看>>
Linux学习笔记<五>——<Shell部分>
查看>>
架构师应不应该写代码?
查看>>
C#中string.format用法详解
查看>>
pip依赖安装与记录
查看>>
CSS 最核心的几个概念
查看>>
oauth 2
查看>>
用虚拟 router 连通 subnet - 每天5分钟玩转 OpenStack(141)
查看>>
企业应用开发中最常用c++库
查看>>
mongodb学习笔记之索引(转)
查看>>
外观模式(Facade)
查看>>
python第三方库requests详解
查看>>
ARC下带CF前缀的类型与OC类型转换
查看>>
CSS控制文本超出指定宽度显示省略号和文本不换行效果的实现
查看>>
【转】Zookeeper 安装和配置
查看>>
《剑指offer》-连续子数组的最大和
查看>>
Docker入门系列8
查看>>