Input unicode string with pyautogui

独自空忆成欢 提交于 2019-12-01 03:31:06

问题


I'm creating an autotesting app with pyautogui lib. I want to use typewrite method to input text into forms. But some of my input strings have unicode characters in them. For example:

Næst

According to documentation typewrite can only press single-character keys. So it just ignores the æ character.

Can you advise some simple workaround?


回答1:


I know this thread is old, but for the sake of the topic I managed to get around it using pyperclip in an easier manner in my opinion.

Rather than trying to make pyautogui to type special characters, copy them to the clipboard using pyperclip and then use pyautogui to paste them. For instance on Windows:

import pyautogui
import pyperclip

pyperclip.copy("It's leviOsa, not lêvioçÁ!")
pyautogui.hotkey("ctrl", "v")



回答2:


Found one quite simple one.

In Mac and Linux there is an opportunity to input unicode characters using their hex codes. There is article on wikipedia about that. I'm writing my program for Mac so I enabled Unicode Hex Input in my keyboard settings and wrote this code:

def type_unicode(word):
    for c in word:
        c = '%04x' % ord(c)
        pyautogui.keyDown('optionleft')
        pyautogui.typewrite(c)
        pyautogui.keyUp('optionleft')


来源:https://stackoverflow.com/questions/33151865/input-unicode-string-with-pyautogui

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!