2014-10-30 2 views
1

파이썬 3.4에서 다음 파이썬 코드를 실행하면body = 'cmd ='+ urllib_parse.quote_plus (unicode (verb) .encode ('utf-8'))는 "name '유니 코드가 정의되지 않음을 반환합니다.

# -*- 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() 

나는 오류 name 'unicode' is not defined:

====================================================================== 
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 

---------------------------------------------------------------------- 

어떤 문제가 있나요? 해결 방법이 있습니까?

답변

2

정확하게 말하면, unicode은 더 이상 3.x에 내장되어 있지 않습니다. 대신 str 유형은 유니 코드 문자열을 설명합니다.

셀렌 코드 내에서 발생하기 때문에이 메시지가 표시되지 않아야합니다. 이것은 Selenium을 부적절하게 설치했음을 나타냅니다. 2.x 코드를 가지고 있지만 3.x에서 사용하려고합니다.

설명서를 신속하게 확인하면 3.x가 Selenium에서 지원된다는 것을 알 수 있습니다. 그러나이를 제거하고 다시 설치해야하며 이번에 올바르게 설치해야합니다.

+0

감사합니다. Karl에게 감사드립니다. Selenium 2.43과 Python3.4 바인딩. Selenium 3.0은 꽤 새로운 기능입니다. 어떻게 Selenium3.0 유니 코드 대신 유니 코드 문자열을 사용합니까? 2.x를 제거하고 3.0을 설치하는 방법에 대해 의사가 이야기하고 있습니까? – Frank

관련 문제