1.定位table并获取数据
def get_table_content(self, dr, tableId):
"""
读取列表数据
:param dr:
:param tableId: 列表ID
:return:
"""
arr = []
arr1 = []
# 根据table ID定位到表格
table = dr.find_element_by_id(tableId)
# 通过标签名获取表格的所有行
table_tr_list = table.find_elements_by_tag_name("tr")
# 按行查询表格的数据,取出的数据是一整行,按空格分隔每一列的数据
for tr in table_tr_list:
arr1 = (tr.text).split(" ") # 以空格拆分成若干个(个数与列的个数相同)一维列表
# print(tr.text)
# print(arr1)
arr.append(arr1) # 将表格数据组成二维的列表
return arr
2.在列表中查看是否存在期望的数据
def table_data(self, arr, queryContent):
"""
循环遍历table数据,确定查询数据的位置
:param arr:
:param queryContent: 期望数据的名称
:return:
"""
for i in range(len(arr)):
for j in range(len(arr[i])):
if queryContent == arr[i][j]:
return arr[i][j]
print("%r坐标为(%r,%r)" % (queryContent, i + 1, j + 1))
3.在实际用例中进行方法调用
arr = public.get_table_content(browser, 'depart-table')
depart_name = public.table_data(arr, '自动测试部门')
assert depart_name == '自动测试部门'
4.删除一行数据
先看一下页面的代码

先定位到需要删除的那一行,然后定位到该行的删除按钮,点击
def del_table_data(self, dr, tableId, row):
"""
定位到需要删除数据的那一行并点击操作列的删除按钮
:param dr:
:param row: 需要删除数据的行数
:param tableId: 列表ID
:return:
"""
table = dr.find_element_by_id(tableId)
# 通过标签名获取表格的所有行
table_tr_list = table.find_elements_by_tag_name("tr")
# 通过元素的title属性来进行定位,注意路径层级
table_tr_list[row].find_element_by_xpath(".//button[@title='删除']").click()
检查是否删除成功,我还是采用遍历列表看数据是否仍在列表中方法来判断
new_arr = public.get_table_content(browser, 'depart-table')
new_depart_row = public.table_data(new_arr, '自动测试部门')
print(new_depart_row)
try:
assert new_depart_row == None
log.logger.info('部门{自动测试部门}删除成功')
except AssertionError:
msg = '部门删除失败,列表中仍显示部门{自动测试部门}'
log.logger.error(msg)
pytest.fail(msg)
finally:
log.logger.info('删除部门{自动测试部门}验证完成')
这篇博客介绍了如何使用Python+Selenium定位HTML表格并获取数据,以及如何删除指定行数据。首先,通过代码定位到目标表格和删除按钮,随后触发删除操作。接着,通过遍历列表来验证数据是否已被成功删除。
7324

被折叠的 条评论
为什么被折叠?



