当前位置: 代码网 > it编程>前端脚本>Python > Python使用selenium模拟键盘输入的常见方法

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

2025年04月29日 Python 我要评论
我在使用selenium弄模拟登陆,需要模拟输入账号和密码,往往都使用 selenium 的send_keys 函数。可是我昨天在写测试的时候,有时候有些网站,居然使用send_keys 函数,无法在

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

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

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

以下是一些常见的方法:

1. 使用 selenium 的send_keys 函数

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

user_input = wait.until(ec.presence_of_element_located((by.xpath, "/html/")))
user_input.send_keys("密码")

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

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

2. 使用 pyautogui 库

在我使用 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定位法会更好

3. 使用 pynput 库

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)

4. 使用js输入的操作

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

但是个人觉得效果不佳hhh

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

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com