Pegar comando usando Selenium

Estoy usando Python 2.7 y Selenium 2-44-0 en Windows 7. Estoy buscando una forma más rápida de ingresar texto que usando send_keys. Send_keys imprimirá 1 letra a la vez (lo 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 manera 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 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 selenium, probablemente tendría más sentido tener un método python. Tal vez algo en la línea de:

 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 de entorno en realidad no actúa como una ‘copia’, y no sé cómo configurar el portapapeles desde el nivel del código sin descargar 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, ya que se agregará al texto copiado.