2015-10-15 3 views
2

Я создаю автотестирующее приложение с pyautogui lib. Я хочу использовать метод typewrite для ввода текста в формы. Но некоторые из моих входных строк имеют в них символы Юникода. Например:Введите строку unicode с pyautogui

Næst

Согласно документации typewrite может только нажать клавиши односимвольные. Поэтому он просто игнорирует символ æ.

Можете ли вы посоветовать некоторое обходное решение?

ответ

1

Нашел один довольно простой.

В Mac и Linux есть возможность вводить символы Юникода, используя их шестнадцатеричные коды. Об этом есть article on wikipedia. Я пишу свою программу для Mac, так что я позволил Unicode Hex Input в моих настройках клавиатуры и написал этот код:

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

Я знаю, эта нить старая, но ради этой темы, мне удалось обойти он использует pyperclip более легким образом imo.

Вместо того, чтобы пытаться сделать pyautogui для ввода слова специальными символами, скопируйте его с помощью скрепки, а затем попросите pyautogui нажать «Ctrl + v».

Например:

import pyautogui 
import pyperclip 

pyperclip.copy("ãêíØ") 
pyautogui.hotkey("ctrl", "v") 
+0

На Max OS X, я должен был изменить пасте строку 'pyautogui.hotkey ("команда", "V")' – karlo

Смежные вопросы