Python使用selenium模拟键盘输入的常见方法

Written by

in

文章目录
  • 这是最基本的方法,适用于需要用户手动输入的情况,不涉及模拟键盘输入。 user_input = wait.until(EC.presence_of_element_located((By.XPATH, “/html/”))) user_input.send_keys(“密码”) 有时候,这个方法对一些网站无效,具体表现在,怎么定位输入键的Xpath都没有效果,无法定位位置,导致无法操作。 这样的话,要么刷新网页,要么使用后面的方法。
  • 在我使用 selenium 传统的的send_keys 函数输入值的方法,发现不太行后,使用js的方法也不行(最后那个方法)。 于是,尝试了一下pyautogui来,模拟鼠标和键盘操作。 在运行前,需要安装 pyautogui: pip install pyautogui 要先找到目标输入的位置: sleep(6) #把鼠标放在目标获取的位置,获取位置信息 current_position = pyautogui.position() print(f”当前鼠标位置:X={current_position.x}, Y={current_position.y}”) 然后,你可以使用它来模拟键盘输入: import pyautogui # 移动鼠标到一个文本框位置(这里以屏幕上的坐标为例) pyautogui.click(100, 100) #输入上面返回的xy的位置信息 # 输入文本 pyautogui.write(‘Hello, World!’, interval=0.25) 如果是要模拟点击enter键,则是 # 模拟按下 Enter 键 pyautogui.press(‘enter’) 到这里就成功啦,只是pyautogui有个不太好的是,它会占用鼠标和键盘的使用,如果我们想要在一边使用selenium运行的时候,也同时使用键盘和鼠标,就会影响或者中断运行的程序,不太方便。 所以如果非必要情况,还是使用xpath/css定位法会更好
  • pynput 是另一种可以用于模拟键盘和鼠标事件的库。 首先,安装 pynput: pip install pynput 使用 pynput 模拟键盘输入: from pynput.keyboard import Controller, Key keyboard = Controller() # 输入文本 keyboard.type(‘Hello, World!’, interval=0.25) # 按下回车键 keyboard.press(Key.enter) keyboard.release(Key.enter)
  • jsStr = “var d = document.getElementsByClassName(‘user’);d.value=’世sdf 言’;” driver.execute_script(jsStr) 但是个人觉得效果不佳hhh 到此这篇关于Python使用selenium模拟键盘输入的常见方法的文章就介绍到这了,更多相关Python selenium键盘输入内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python+Selenium键盘鼠标模拟事件操作详解 Python爬虫之Selenium实现键盘事件 Python selenium键盘鼠标事件实现过程详解 selenium+python自动化测试之鼠标和键盘事件 玩转python selenium鼠标键盘操作(ActionChains)
  • 目录
    • 1. 使用 selenium 的send_keys 函数
    • 2. 使用 pyautogui 库
    • 3. 使用 pynput 库
    • 4. 使用js输入的操作

    我在使用selenium弄模拟登陆,需要模拟输入账号和密码,往往都使用 selenium 的send_keys 函数。

    可是我昨天在写测试的时候,有时候有些网站,居然使用send_keys 函数,无法在输入框里输入文字!

    在Python中,你可以使用多种方式来模拟键盘输入。

    以下是一些常见的方法:

    这是最基本的方法,适用于需要用户手动输入的情况,不涉及模拟键盘输入。

    user_input = wait.until(EC.presence_of_element_located((By.XPATH, "/html/")))
    user_input.send_keys("密码")
    

    有时候,这个方法对一些网站无效,具体表现在,怎么定位输入键的Xpath都没有效果,无法定位位置,导致无法操作。

    这样的话,要么刷新网页,要么使用后面的方法。

    在我使用 selenium 传统的的send_keys 函数输入值的方法,发现不太行后,使用js的方法也不行(最后那个方法)。

    于是,尝试了一下pyautogui来,模拟鼠标和键盘操作。

    在运行前,需要安装 pyautogui

    pip install pyautogui
    

    要先找到目标输入的位置:

    sleep(6) #把鼠标放在目标获取的位置,获取位置信息
    current_position = pyautogui.position()
    print(f"当前鼠标位置:X={current_position.x}, Y={current_position.y}")
    

    然后,你可以使用它来模拟键盘输入:

    import pyautogui
    
    # 移动鼠标到一个文本框位置(这里以屏幕上的坐标为例)
    pyautogui.click(100, 100) #输入上面返回的xy的位置信息
    
    # 输入文本
    pyautogui.write('Hello, World!', interval=0.25)
    

    如果是要模拟点击enter键,则是

    # 模拟按下 Enter 键
    pyautogui.press('enter')
    

    到这里就成功啦,只是pyautogui有个不太好的是,它会占用鼠标和键盘的使用,如果我们想要在一边使用selenium运行的时候,也同时使用键盘和鼠标,就会影响或者中断运行的程序,不太方便。

    所以如果非必要情况,还是使用xpath/css定位法会更好

    pynput 是另一种可以用于模拟键盘和鼠标事件的库。

    首先,安装 pynput

    pip install pynput
    

    使用 pynput 模拟键盘输入:

    from pynput.keyboard import Controller, Key
    
    keyboard = Controller()
    
    # 输入文本
    keyboard.type('Hello, World!', interval=0.25)
    
    # 按下回车键
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)
    

    jsStr = "var d = document.getElementsByClassName('user');d.value='世sdf 言';"
    driver.execute_script(jsStr)
    

    但是个人觉得效果不佳hhh

    到此这篇关于Python使用selenium模拟键盘输入的常见方法的文章就介绍到这了,更多相关Python selenium键盘输入内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python+Selenium键盘鼠标模拟事件操作详解
    • Python爬虫之Selenium实现键盘事件
    • Python selenium键盘鼠标事件实现过程详解
    • selenium+python自动化测试之鼠标和键盘事件
    • 玩转python selenium鼠标键盘操作(ActionChains)

    站内搜索