【问题标题】:How to slow down the speed of send_keys action in a selenium script using python?如何使用 python 减慢 selenium 脚本中 send_keys 操作的速度?
【发布时间】:2017-08-11 00:25:34
【问题描述】:
我目前正在 python 中创建一个 selenium 脚本。我需要使用 send_keys 函数在文本框中输入内容。到目前为止,它正在正确地做到这一点。但是,为了观察,我需要减慢 send_keys 填充文本字段的速度。有没有办法我可以做到这一点?此外,硒中的 send_keys 是否有任何替代方法?
感谢和问候
卡兰
【问题讨论】:
标签:
python-3.x
selenium
selenium-chromedriver
sendkeys
【解决方案1】:
您可以在发送每个字符后插入暂停。例如,如果您的代码如下所示:
el = driver.find_element_by_id("element-id")
el.send_keys("text to enter")
您可以将其替换为:
el = driver.find_element_by_id("element-id")
text = "text to enter"
for character in text:
el.send_keys(character)
time.sleep(0.3) # pause for 0.3 seconds
【解决方案2】:
遍历 Mark 的答案,您可以将其包装在一个可重用函数中:
import time
def slow_type(element, text, delay=0.1):
"""Send a text to an element one character at a time with a delay."""
for character in text:
element.send_keys(character)
time.sleep(delay)
带有类型提示的版本:
import time
from selenium.webdriver.remote.webelement import WebElement
def slow_type(element: WebElement, text: str, delay: float=0.1):
"""Send a text to an element one character at a time with a delay."""
for character in text:
element.send_keys(character)
time.sleep(delay)
用法:
el = driver.find_element_by_id("element-id")
text = "text to enter"
slow_type(el, text)