为了测试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的值是:帐号或密码错误
发现没,两个账字不一样。改成一样的就运行成功了

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

被折叠的 条评论
为什么被折叠?



