在python中使用selenium 使用无法使用send_keys()方法
driver.find_element(By.ID,s).send_keys(i)
我需要在web中触发keydown 事件。实现类似于网页快捷键的效果。而不是选中输入框输入。
该回答引用GPTᴼᴾᴱᴺᴬᴵ
要在Python中使用Selenium触发keydown事件,您可以使用ActionChains类。以下是一个示例代码片段,演示如何使用ActionChains模拟按下键:
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
# 启动浏览器并打开网页
driver = webdriver.Chrome()
driver.get("https://www.example.com")
# 模拟按下键
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform()
# 关闭浏览器
driver.quit()
在这个例子中,我们使用ActionChains类来创建一个actions对象,然后使用key_down方法按下键,send_keys方法发送按键,key_up方法释放键,最后使用perform方法执行操作。
在这个例子中,我们按下了Control+A组合键来选择网页中的所有文本。您可以使用Keys类中的其他键来模拟其他按键事件,具体取决于您想要实现的功能。
该回答引用ChatGPT
使用 ActionChains 类来模拟键盘事件,从而实现类似网页快捷键的输入效果
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome()
# 打开测试页面
driver.get('https://www.baidu.com')
# 定位到文本框
element = driver.find_element_by_name('wd')
# 模拟按下 shift 键
action = ActionChains(driver)
action.key_down(Keys.SHIFT)
# 在文本框中输入内容,此时会触发 keydown 事件
element.send_keys('hello world')
# 释放 shift 键
action.key_up(Keys.SHIFT)
# 执行操作
action.perform()
# 关闭浏览器
driver.quit()
根据需要修改示例中的按键、操作目标等参数,以实现你所需的键盘事件
selenium不能实现模拟系统键盘按击事件,需要使用其他python库,这里推荐一个库pynput,可以实现题主的需求。
以下是实例代码:
from pynput.keyboard import Key
from pynput.keyboard import Controller
keyboard = Controller()
# 按下caps_lock键
keyboard.press(Key.caps_lock)
# 释放caps_lock键
keyboard.release(Key.caps_lock)
如果需要模拟按其他键,就使用Key.调用键值就可以了。
参考阅读:
https://blog.csdn.net/u011367482/article/details/106173994