Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Selenium, send_keys letter by letter

How can I slower the .send_keys() ? So perhaps there can be a 0.25 second delay between every letter it send?

like image 521
Programer Beginner Avatar asked Aug 02 '26 05:08

Programer Beginner


1 Answers

You can simply write your own send_keys() method:

import time

def send_keys_delay(controller,keys,delay=0.25):
    for key in keys:
        controller.send_keys(key)
        time.sleep(delay)

and call send_keys_delay(controller,keys) instead of controller.send_keys(keys). In case you want to set the delay (for instance to 0.5 seconds) you can also call: send_keys_delay(controller,keys,0.5).

You can even make it more realistic by using random delays:

import random
import time

def send_keys_delay_random(controller,keys,min_delay=0.05,max_delay=0.25):
    for key in keys:
        controller.send_keys(key)
        time.sleep(random.uniform(min_delay,max_delay))
like image 186
Willem Van Onsem Avatar answered Aug 04 '26 19:08

Willem Van Onsem