前言playwright 可以模拟键盘操作,定位到元素使用press()方法 press()方法 介绍locator.press ()方法聚焦所选元素并产生单个击键。它接受在键盘事件的keyboardEvent.key属性中发出的逻辑键名称: Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, F1 - F12, Digit0 - Digit9, KeyA - KeyZ, etc.
使用示例 # 敲 Enter 键 page.get_by_text("Submit").press("Enter")
# 按住 Control+右箭头→ page.get_by_role("textbox").press("Control+ArrowRight")
# 按键盘上的 $ 符号 page.get_by_role("textbox").press("$")
您也可以指定要生成的单个字符,例如”a”or “#”。 还支持以下修改快捷方式:Shift, Control, Alt, Meta. 简单版本产生单个字符。这个字符是区分大小写的,所以”a”和”A”会产生不同的结果。 # <input id=name> page.locator('#name').press('Shift+A')
# <input id=name> page.locator('#name').press('Shift+ArrowLeft')
也支持”Control+o”或”Control+Shift+T” 等快捷方式,当使用修饰符指定时,修饰符被按下并在按下后续键时按住。 请注意,您仍然需要指定大写字母A以Shift-A生成大写字符。Shift-a产生一个小写的,就好像你有CapsLock切换。 使用实例如下网页中 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div> <input id="demoInput" value="上海-悠悠"> <button id="btn">点我复制</button> </div> <div> <input id="copy" value=""> </div>
</body> <script> const btn = document.querySelector('#btn'); btn.addEventListener('click', () => { const input = document.querySelector('#demoInput'); input.select(); if (document.execCommand('copy')) { document.execCommand('copy'); console.log('复制成功'); } })
</script> </html>
点按钮复制到粘贴板 使用快捷键”Control+V” 粘贴到页面其它发位置 from playwright.sync_api import sync_playwright
with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("file:///C:/Users/dell/Desktop/demo.html")
# 点击按钮后复制到粘贴板 page.locator('#btn').click()
# Ctrl + v 粘贴到另外一个地方 page.locator('#copy').press('Control+V')
page.pause() browser.close()
复制到本地如果需要把粘贴板的内容复制到本地文件,需用到python的第三方库保存到本地 pip install pyperclip 使用示例 import pyperclip
x = "上海-悠悠"
# 复制到剪切板 pyperclip.copy(x)
# 获取剪切板的内容 y = pyperclip.paste() print(f"粘贴的内容: {y}")
获取playwright 复制到剪切板内容playwright 结合 pyperclip 使用 from playwright.sync_api import sync_playwright import pyperclip
with sync_playwright() as p: browser = p.chromium.launch(headless=False) page = browser.new_page() page.goto("file:///C:/Users/dell/Desktop/demo.html")
# 点击按钮后复制到粘贴板 page.locator('#btn').click()
# 获取剪切板的内容 y = pyperclip.paste() print(f"粘贴的内容: {y}")
# # Ctrl + v 粘贴到另外一个地方 # page.locator('#copy').press('Control+V') browser.close()=
|