当我在 Python 3.4 上运行以下 python 代码时
# -*- coding: utf-8 -*-
import unittest, time, re
from selenium.selenium import selenium
class google(unittest.TestCase):
def setUp(self):
self.verificationErrors = []
self.selenium = selenium("localhost", 4444, "*chrome", "https://www.google.com/")
self.selenium.start()
def test_google(self):
sel = self.selenium
sel.open("/?gws_rd=ssl")
sel.type("id=gbqfq", "")
sel.type("id=gbqfq", "test")
def tearDown(self):
self.selenium.stop()
self.assertEqual([], self.verificationErrors)
if __name__ == "__main__":
unittest.main()
我遇到错误名称'unicode'未定义:
======================================================================
ERROR: test_google (__main__.google)
----------------------------------------------------------------------
Traceback (most recent call last):
File "google.py", line 11, in setUp
self.selenium.start()
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium-2.43.0-py3.4.egg/selenium/selenium.py", line 201, in start
result = self.get_string("getNewBrowserSession", start_args)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium-2.43.0-py3.4.egg/selenium/selenium.py", line 236, in get_string
result = self.do_command(verb, args)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/selenium-2.43.0-py3.4.egg/selenium/selenium.py", line 215, in do_command
body = 'cmd=' + urllib_parse.quote_plus(unicode(verb).encode('utf-8'))
NameError: name 'unicode' is not defined
----------------------------------------------------------------------
怎么了?有办法解决吗?
最佳答案
正如它所说,unicode
不再是 3.x 中的内置 - 相反,str
类型描述了 Unicode 字符串。
您不应该收到此消息,因为它发生在 Selenium 代码中。这表明您没有正确安装 Selenium - 您拥有 2.x 代码,但试图从 3.x 中使用它。
快速检查文档表明 Selenium 支持 3.x - 但您需要卸载并重新安装它,并确保这次正确。
关于python - body = 'cmd=' + urllib_parse.quote_plus(unicode(verb).encode ('utf-8' )) 返回 "name ' unicode' 未定义”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657067/