Appium 中常用的断言方法:
- 基础断言
assert element.is_displayed() # 断言元素可见
assert element.is_enabled() # 断言元素可用
assert element.is_selected() # 断言元素被选中
- 文本相关断言
# 获取元素文本并断言
actual_text = element.text
assert actual_text == "预期文本"
assert "部分文本" in actual_text
assert actual_text.startswith("开头文本")
assert actual_text.endswith("结尾文本")
- 属性相关断言
# 断言元素属性值
attribute_value = element.get_attribute("属性名")
assert attribute_value == "预期值"
# 常用属性断言示例
assert element.get_attribute("enabled") == "true"
assert element.get_attribute("checked") == "true"
assert element.get_attribute("text") == "预期文本"
- 元素存在性断言
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
# 断言元素存在
assert len(driver.find_elements_by_id("元素ID")) > 0
# 使用显式等待进行断言
wait = WebDriverWait(driver, 10)
assert wait.until(EC.presence_of_element_located((By.ID, "元素ID")))
- 页面状态断言
# 断言当前页面URL
assert driver.current_url == "预期URL"
# 断言当前页面标题
assert driver.title == "预期标题"
- 元素位置和大小断言
# 获取元素位置和大小
location = element.location
size = element.size
# 断言元素位置
assert location['x'] == 预期x坐标
assert location['y'] == 预期y坐标
# 断言元素大小
assert size['width'] == 预期宽度
assert size['height'] == 预期高度
- 自定义等待断言
def custom_condition(driver):
element = driver.find_element_by_id("元素ID")
return element.text == "预期文本"
# 使用自定义条件进行断言
wait = WebDriverWait(driver, 10)
assert wait.until(custom_condition)
小结:
1.建议结合 try-except 使用断言,以便更好地处理异常情况 2.对于需要等待的元素,最好使用显式等待而不是直接断言 3.可以根据具体测试场景组合使用多个断言