方法一:
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