unittest单元测试断言函数assertEqual报:AssertionError的解决过程

在Python2+Selenium+unittest环境下进行web登录测试时遇到AssertionError,错误信息显示编码问题。尝试通过修改元素文本的编码方式或确保字符串一致来解决,但初次尝试失败。最终发现是字符串中的汉字'账'字存在不同版本,修正后测试成功。
部署运行你感兴趣的模型镜像

为了测试web登录,使用python2+selenium+unittest进行测试,老是报如下错误:
AssertionError: ‘\xe8\xb4\xa6\xe5\x8f\xb7\xe6\x88\x96\xe5\xaf\x86\xe7\xa0\x81\xe9\x94\x99\xe8\xaf\xaf’ != u’\u5e10\u53f7\u6216\u5bc6\u7801\u9519\u8bef’
百度了一下应该是编码问题,为了解决这个问题,单独写一个简单代码,看调试结果,代码如下:

  #coding=utf-8
  import unittest
  from selenium import webdriver
  import time
  class Zzhongwen(unittest.TestCase):

    def setUp(self):
          self.driver=webdriver.Firefox()
    def setUp(self):
         self.driver=webdriver.Firefox()
    def test_zhongwen(self):
        self.driver.get('https://www.xxxxx.com')
        self.driver.find_element_by_link_text('登录').click()
        self.driver.find_element_by_id("usernameLogin").send_keys('juyindi88')
        self.driver.find_element_by_id("passwordLogin").send_keys('juas92929')
        self.driver.find_element_by_id("btn_login").click()
        errortext=self.driver.find_element_by_id('errorSpan').text
        print errortext

        elementtext='账号或密码错误'

        self.assertEqual(elementtext,errortext)


      def tearDown(self):
         time.sleep(3)
        self.driver.quit()
        if __name__=='__main()__':
unittest.main()

报错:
Failure
Traceback (most recent call last):
File “/Users/PycharmProjects/xr58/login/zhonwen.py”, line 24, in test_zhongwen
self.assertEqual(elementtext,errortext)
AssertionError: ‘\xe8\xb4\xa6\xe5\x8f\xb7\xe6\x88\x96\xe5\xaf\x86\xe7\xa0\x81\xe9\x94\x99\xe8\xaf\xaf’ != u’\u5e10\u53f7\u6216\u5bc6\u7801\u9519\u8bef’

解决方法两种:
第一种:
此行代码: errortext=self.driver.find_element_by_id(‘errorSpan’).text
改为: errortext=self.driver.find_element_by_id(‘errorSpan’).text.encode(‘utf-8’)

第二种:
此行代码:elementtext=‘账号或密码错误’
改为:elementtext=u’账号或密码错误’

修改完了之后,运行,发现还是失败,奇了怪了:
AssertionError: ‘\xe8\xb4\xa6\xe5\x8f\xb7\xe6\x88\x96\xe5\xaf\x86\xe7\xa0\x81\xe9\x94\x99\xe8\xaf\xaf’ != ‘\xe5\xb8\x90\xe5\x8f\xb7\xe6\x88\x96\xe5\xaf\x86\xe7\xa0\x81\xe9\x94\x99\xe8\xaf\xaf’

看了报错的信息,发现真的犯了一个很低调的错误, errortext=self.driver.find_element_by_id(‘errorSpan’).text
print errortext

中errortext的值是:帐号或密码错误

发现没,两个账字不一样。改成一样的就运行成功了

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值