python selenium clipboard sikuli

python - Pegar el comando usando Selenio



selenium clipboard (1)

Estoy usando Python 2.7 y Selenium 2-44-0 en Windows 7. Estoy buscando una manera más rápida de ingresar texto que usando send_keys. Send_keys imprimirá 1 letra a la vez (que imita mejor a un usuario real). Me gustaría una forma de imprimirlos todos a la vez, como si el contenido estuviera pegado.

Por ejemplo, Sikuli tiene la siguiente funcionalidad:

paste("this will all populate the field at the same time")

Me pregunto si hay una forma de escribir un método en Python que tenga el mismo resultado. Entonces, en lugar de:

el.send_keys("this will do 1 letter at a time")

Tener algo así como

el.paste_keys("this will do the entire line at once")

Dado que el comando anterior requeriría agregar código a la funcionalidad de selenio, probablemente tendría más sentido tener un método de python. Tal vez algo como:

def paste_keys(self, xpath, text): os.environ[''CLIPBOARD''] = text el = self.driver.find_element_by_xpath(xpath) el.send_keys(Keys.CONTROL, ''v'')

Sin embargo, usar esa variable ambiental no funciona como una ''copia'', y no sé cómo configurar el portapapeles desde el nivel de código sin descargar un software de terceros.


Esto funciona:

def paste_keys(self, xpath, text): os.system("echo %s| clip" % text.strip()) el = self.driver.find_element_by_xpath(xpath) el.send_keys(Keys.CONTROL, ''v'')

No puede haber un espacio después de% s, porque lo agregará al texto copiado.