在UI自动测试时,经常会对页面列表中的数据进行操作(比如,查看详情,编辑,删除等),进入一个页面后,先要判断列表是否有数据,只有有数据时,才能做查看详情,编辑,删除等操作,否则如果直接点相应按钮,会报错定位元素失败
页面列表一般都是一个tbody,比较简单的方法就是去找页面列表tbody里是否有数据,通过判断tbody内容的长度,只要有数据,tbody的长度就会大于0,就认为页面有数据,如果tbody的长度等于0,则判断页面列表里没有数据,不要去点查查看详情,编辑,删除等按钮。
找到tbody那个xpath,定位获取text
# 获取页面列表内容
element = driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div[3]/div/div/div/div[1]/div[3]/div[3]/div/div[3]/table/tbody')
tr = element.text
# print(f"tr 里的数据是:{tr}")
length = len(tr)
print(f"列表内容长度是:{length}")
if length == 0:
print("当前页面没数据,不需要操作")
if length > 0:
print("列表中有数据,继续操作")
# 选择一条消息,进行处理
element = driver.find_element(By.XPATH, '//*[@id="app"]/div[3]/div[3]/div/div/div/div[1]/div[3]/div[3]\
/div/div[3]/table/tbody/tr[1]/td[1]/div/label/span/span')
driver.execute_script('arguments[0].click()', element)
time.sleep(2)
如果页面展示数据 非列表的形式,也找到类似的元素