【问题标题】: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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-17
        • 1970-01-01
        • 2017-04-27
        • 1970-01-01
        • 2021-06-12
        • 1970-01-01
        • 1970-01-01
        • 2018-04-25
        相关资源
        最近更新 更多