python+selenium自动化测试--try except测试断言

本文介绍使用Selenium和Python实现自动化测试的过程,通过try-except语句块处理异常情况,确保测试流程的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在自动化测试脚本开发中,经常会用到异常处理,本文通过try except语句块进行断言测试。
例:判断百度首页是否有id为“kw”的元素(其实为百度的搜索输入框)。
代码如下:

from selenium import webdriver


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)

driver.get("https://www.baidu.com")
# 通过try except语句块来进行测试断言
# 在实际自动化测试脚本开发中,经常要用到处理异常
try:
    driver.find_element_by_id("kw")
    print("test pass: ID found")
except Exception as e:
    print("Exception found", format(e))

driver.quit()

运行完,控制台显示如下:
这里写图片描述
若将代码改为:

driver.find_element_by_id("k1w")

此时运行控制台显示为:
这里写图片描述

### Python Selenium 自动化测试中的断言Python Selenium自动化测试中,断言用于验证应用程序的行为是否符合预期。这有助于确保被测应用的功能正常工作并能及时发现潜在问题。 对于简单的相等性检查,可以使用`assertEqual()`方法来比较两个值是否相同: ```python from selenium import webdriver import unittest class TestExample(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.get("http://example.com") def test_title_verification(self): expected_title = "Example Domain" actual_title = self.driver.title # 使用 assertEqual 方法来进行字符串匹配 self.assertEqual(expected_title, actual_title, "页面标题不一致")[^1] def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main() ``` 除了基本的相等性断言外,还可以利用其他类型的断言操作符,比如判断某个元素是否存在或可见。下面的例子展示了如何确认特定链接存在并且可点击: ```python def test_link_existence(self): try: element = WebDriverWait(self.driver, 10).until( EC.element_to_be_clickable((By.LINK_TEXT, 'More information...')) ) print("Link is present and clickable.") except TimeoutException: raise AssertionError('指定时间内未找到可点击链接') ``` 另外,在某些情况下可能需要自定义错误消息以便更好地理解失败原因。这里展示了一个否定实例化的例子,当条件满足时不抛出异常而让测试继续执行下去: ```python self.assertNotIsInstance(result, ExceptionType, msg='如果result不是ExceptionType,则此条目通过')[^4] ``` 值得注意的是,上述代码片段均假设读者已经安装好了必要的库文件,并配置好环境变量使得能够顺利启动ChromeDriver或其他浏览器驱动程序。 #### 注意事项 - 断言语句应当放置于适当位置以反映业务逻辑流程; - 尽量保持简洁明了的消息提示帮助快速定位问题所在; - 结合显示等待机制提高测试稳定性;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值