无法在 python selenium 脚本中使用带有特殊字符“$”的密码

Sub*_*ukh 4 python selenium decode utf-8 python-unicode

示例脚本:

\n\n
# -*- coding: utf-8 -*-\nfrom selenium import webdriver\nimport os\n\n#credentials\nUSERNAME = \'##########\'\nPASSWORD = \'#####$####\xe2\x80\x8b\'\n\n#load profile\nprofile = webdriver.FirefoxProfile()\nprofile.set_preference(\'browser.download.folderList\', 2)  # custom location\nprofile.set_preference(\'browser.download.manager.showWhenStarting\', False)\nprofile.set_preference(\'browser.download.dir\', os.getcwd())\n\n# following properties to suppress download popup screen\nprofile.set_preference("browser.helperApps.neverAsk.openFile", "text/csv")\nprofile.set_preference("browser.helperApps.neverAsk.saveToDisk", "text/csv")\n\n# initialise driver with above profile\ndriver = webdriver.Firefox(profile)\n\n\n#make the request to the url\ndriver.get(\'https://api.instagram.com/oauth/authorize/?client_id=#################&redirect_uri=#############&response_type=token\')\n#browser.current_url\ndriver.implicitly_wait(5)\n\n#Enter username and password\nUsername = driver.find_element_by_css_selector(\'#id_username\')\nUsername.send_keys(USERNAME)\n\nPassword = driver.find_element_by_css_selector(\'#id_password\')\nPassword.send_keys(PASSWORD)\n\n#SignIn button click\nSignIn = driver.find_element_by_css_selector(\'.button-green\').click()\n
Run Code Online (Sandbox Code Playgroud)\n\n

正如你所看到的,我正在尝试验证 Instagram 应用程序。我无法传递具有特殊字符“$”的正确密码值。我收到以下错误。

\n\n
C:\\Python27\\python.exe "D:/Projects/#####/Instagram Data Extraction/ETL_Scripts/Instagram_auth.py"\nTraceback (most recent call last):\n  File "D:/Projects/######/Instagram Data Extraction/ETL_Scripts/Instagram_auth.py", line 35, in <module>\n    Password.send_keys(PASSWORD)\n  File "C:\\Python27\\lib\\site-packages\\selenium\\webdriver\\remote\\webelement.py", line 322, in send_keys\n    self._execute(Command.SEND_KEYS_TO_ELEMENT, {\'value\': keys_to_typing(value)})\n  File "C:\\Python27\\lib\\site-packages\\selenium\\webdriver\\remote\\webelement.py", line 457, in _execute\n    return self._parent.execute(command, params)\n  File "C:\\Python27\\lib\\site-packages\\selenium\\webdriver\\remote\\webdriver.py", line 231, in execute\n    response = self.command_executor.execute(driver_command, params)\n  File "C:\\Python27\\lib\\site-packages\\selenium\\webdriver\\remote\\remote_connection.py", line 392, in execute\n    data = utils.dump_json(params)\n  File "C:\\Python27\\lib\\site-packages\\selenium\\webdriver\\remote\\utils.py", line 32, in dump_json\n    return json.dumps(json_struct)\n  File "C:\\Python27\\lib\\json\\__init__.py", line 243, in dumps\n    return _default_encoder.encode(obj)\n  File "C:\\Python27\\lib\\json\\encoder.py", line 207, in encode\n    chunks = self.iterencode(o, _one_shot=True)\n  File "C:\\Python27\\lib\\json\\encoder.py", line 270, in iterencode\n    return _iterencode(o, 0)\nUnicodeDecodeError: \'utf8\' codec can\'t decode byte 0xe2 in position 0: unexpected end of data\n
Run Code Online (Sandbox Code Playgroud)\n\n

谁能帮我解决这个问题吗?\n提前致谢。

\n

py_*_*ude 5

看起来字符串末尾有一个符号,无法对其进行编码

>>> PASSWORD.decode('utf-8')
u'#####$####\u200b'
Run Code Online (Sandbox Code Playgroud)

你应该尝试删除它