方法一:
table border="0" cellpadding="0" cellspacing="0">
<
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
根据table的id属性和table中的某一个元素定位其在table中的位置
table包括表头,位置坐标都是从1开始算
tableId:table的id属性
queryContent:需要确定位置的内容
"""
def
get_table_content(tableId,queryContent):
arr
=
[]
arr1
=
[]
table_loc
=
(By.
ID
,tableId)
# 按行查询表格的数据,取出的数据是一整行,按空格分隔每一列的数据
table_tr_list
=
driver.find_element(
*
table_loc).find_elements(By.TAG_NAME,
"tr"
)
for
tr
in
table_tr_list:
arr1
=
(tr.text).split(
" "
)
#以空格拆分成若干个(个数与列的个数相同)一维列表
# print(tr.text)
# print(arr1)
arr.append(arr1)
#将表格数据组成二维的列表
#循环遍历table数据,确定查询数据的位置
for
i
in
range
(
len
(arr)):
for
j
in
range
(
len
(arr[i])):
if
queryContent
=
=
arr[i][j]:
print
(
"%r坐标为(%r,%r)"
%
(queryContent,i
+
1
,j
+
1
))
get_table_content(
"myTable"
,
"第二行第二列"
)<
/
code>
方法二:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
""" 根据table的id属性和table中的某一个元素定位其在table中的位置 table包括表头,位置坐标都是从1开始算 tableId:table的id属性 queryContent:需要确定位置的内容 """ def get_table_content(tableId,queryContent): # 按行查询表格的数据,取出的数据是一整行,按空格分隔每一列的数据 table_tr_list = driver.find_element(By. ID , tableId).find_elements(By.TAG_NAME, "tr" ) table_list = [] #存放table数据 for tr in table_tr_list: #遍历每一个tr #将每一个tr的数据根据td查询出来,返回结果为list对象 table_td_list = tr.find_elements(By.TAG_NAME, "td" ) row_list = [] print (table_td_list) for td in table_td_list: #遍历每一个td row_list.append(td.text) #取出表格的数据,并放入行列表里 table_list.append(row_list) # 循环遍历table数据,确定查询数据的位置 for i in range ( len (table_list)): for j in range ( len (table_list[i])): if queryContent = = table_list[i][j]: print ( "%r坐标为(%r,%r)" % (queryContent,i + 1 ,j + 1 )) get_table_content( "myTable" , "第二行第二列" ) |
方法三:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
""" 根据CSS选择器和table中的某一个元素定位其在table中的位置 table包括表头,位置坐标都是从1开始算 cssSelector:table的CSS选择器属性 queryContent:需要确定位置的内容 """ def get_table_content(cssSelector,queryContent): locator = cssSelector + ">tbody>tr" table_list = [] table_tr_list = driver.find_elements(By.CSS_SELECTOR, locator)[ 1 :] #去掉表头 for tr in table_tr_list: row_list = [] table_td_list = tr.find_elements(By.TAG_NAME, "td" ) for td in table_td_list: row_list.append(td.text) table_list.append(row_list) for i in range ( len (table_list)): for j in range ( len (table_list[i])): if queryContent = = table_list[i][j]: print ( "%r坐标为(%r,%r)" % (queryContent,i + 1 ,j + 1 )) get_table_content( "#myTable" , "第二行第二列" ) |
以上这篇selenium + python 获取table数据的示例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/huayuhuan/article/details/76559465