unittest单元测试断言函数assertEqual报: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的值是:帐号或密码错误

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

你可能感兴趣的:(python实际练习,python学习笔记)