断言静态文本
元素里的静态文本:就是指开始和结束标记之间的文本
- 例如:
文本 - 定位到元素:一般是双标记的元素,目标文本位于两个<>之间
- 示例:匿名用户
- 然后获取元素对象的text属性值
- 变量=元素.text
- 注意:数据类型是str类型
- 最后使用assertEqual来检查它等于预期值,也可以使用assertIn来检查它包含某个预期值
- 注意:元素text属性值始终是str类型,所以预期值也需要写str类型的数据
# 检查留言板页,默认用户名是 "匿名用户"
user=self.driver.find_element(By.XPATH,"//td[text()='用户名']/../td[2]").text
self.assertEqual("匿名用户",user)
断言文本框内容
检查文本框里的内容
- 需要定位到文本框后
- 使用get_attribute("value")来获取文本框里的值
- 检查它等于某值或包含某值
- 注意:不能使用text属性获取文本框的内容
断言是否选中
检查复选框或单选按钮是否已经被选中
- 定位到复选框或单选按钮
- 使用is_selected()来获得是否被选中的状态值(布尔类型)
- 检查它等于True就可以检查已被选中,检查它等于False就可以检查它未被选中
断言下拉列表里的当前选项文本
检查下拉列表里的当前选项文本
- 导入select类
- 定位到下拉列表的select标记元素
- 封装为select对象
- 获得first_selected_option属性值就是当前选项
- 获得text属性值就是当前选项的文本
- 检查等于某值或包含某值
断言消息框弹出
消息框是否弹出,是下一步骤操作和检查的前提,如果消息框没有弹出,无法切换到消息框
断言消息框弹出:
- 导入弹出框没有出现的异常类NoAlertPresentException
- 定义一个通用方法is_alert_present,用来判断消息框弹出
- 使用异常处理机制语法try .... except....尝试切换到弹出框,如果一旦抛出异常NoAlertPresentException,就返回False,否则就返回True
- 测试方法里调用这个通用方法,对返回的布尔值做检查
通用方法: is_alert_present
- 定义一个通用方法is_alert_present,用来判断消息框弹出
from selenium.common.exceptions import NoAlertPresentException
def is_alert_present(self):
try:
a = self.driver.switch_to.alert
expect NoAlertPresentException:
return False
return True
处理消息框和断言消息内容
目标:处理消息框(点击 确定 或 点击 取消 关闭它),才能进行后续的网页操作,同时需要获得消息框里的文本信息以备检查
封装定义一个通用的方法:close_alert
操作:切换到消息框,获得消息框里的文本,并关闭消息框
参数:is_accept可选参数,默认值True代表用 确定 按钮关闭消息框,False代表用取消按钮关闭消息框
返回值: 消息框里的信息需要断言,所以返回该消息内容(str类型)
通用方法 close_alert
- 定义一个通用方法close_alert,用来关闭消息框
def close_alert(self,is_accept=True):
a = self.driver.switch_to.alert
t = a.text
if is_accept:
a.accept() # 点击确定
else:
a.dismiss() # 点击取消
return t
断言页面跳转 (从A页跳转B页)
- 断言当前网页的标题是B页的标题
- 获取当前网页标题 driver.title
- 断言当前URL是B页的URL
- 获得当前URL driver.current_url
- 断言网页源代码里包含B页的文本内容
- 获得网页源代码 driver.page_source
- 断言能定位B页中特定网页元素成功
断言页面元素出现
能定位特定页面元素成功:代表该页面元素出现
- 导入元素定位失败出现的异常类NoSuchElementException
- 定义一个通用方法is_element_present,用来判断元素是否可以定位到
- 参数how代表定位类型(By.XXX),what代表定位数据(字符串)
- 使用异常处理机制语法try ... except ....尝试定位元素,如果一旦抛出异常NoSuchElementException,就返回False,否则返回True
- 测试方法里调用这个通用方法,对返回的布尔值做检查
通用方法is_element_present
- 定义一个通用方法is_element_present,用来判断元素出现
from selenium.common.exceptions import NoSuchElementException
def is_element_present(self,how,what):
try:
self.driver.find_element(how,what)
except NoSuchElementException:
return False
return True