2015-10-15 3 views
2

Je crée une application autotesting avec pyautogui lib. Je souhaite utiliser la méthode typewrite pour entrer du texte dans des formulaires. Mais certaines de mes chaînes d'entrée ont des caractères Unicode. Par exemple:Entrer une chaîne unicode avec pyautogui

Næst

Selon la documentation typewrite ne peut appuyer sur les touches d'un seul caractère. Donc, il ignore simplement le caractère æ.

Pouvez-vous conseiller une solution de contournement simple?

Répondre

1

Trouvé un assez simple. Sous Mac et Linux, il est possible d'entrer des caractères Unicode en utilisant leurs codes hexadécimaux. Il y a article on wikipedia à ce sujet. J'écris mon programme pour Mac et j'ENABLED Unicode Hex Entrée dans mes paramètres du clavier et écrit ce code:

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

Je sais que ce fil est vieux, mais pour le bien du sujet, je suis parvenu à se déplacer il utilise plus facilement pyperclip.

Plutôt que d'essayer de faire pyautogui pour taper le mot avec les caractères spéciaux, copiez-le en utilisant un trombone, puis demandez à pyautogui d'appuyer sur "Ctrl + v".

Par exemple:

import pyautogui 
import pyperclip 

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

sur Max OS X, je devais changer la ligne de pâte à 'pyautogui.hotkey ("commande", "v")' – karlo