playwright元素操作
1、输入文字(fill)
适用于:,
或
[contenteditable],其他类型的会报错,page、element、frame都可以使用fill方法
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False,slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") #页面直接调用fill方法 page.fill("#kw", "playwright") #向百度搜索框输入playwright #元素调用fill方法 element_handle = page.query_selector("#kw") element_handle.fill("playwright") #向百度搜索框输入playwright
2、模拟键盘挨个输入字符(type)
我们也可以在type方法中增加delay参数,设置每个字符之间输入的延迟。page、element、frame都可以使用type方法。不适用于ctrl、enter等特殊键
from playwright.sync_api import sync_playwright with sync_playwright() as p: browser = p.chromium.launch(headless=False,slow_mo=1000) page = browser.new_page() page.goto("https://www.baidu.com") page.type("#kw", "哈哈哈")
3、模拟键盘按键操作(press)
模拟键盘上的每个按键,也支持Control+c等组合按键,不支持连续按键(例如先按a、再按b)
Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape,
ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight,
ArrowUp, F1 - F12, Digit0 - Digit9, KeyA - KeyZ, etc.
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=False,slow_mo=1000)
page = browser.new_page()
page.goto("https://www.baidu.com")
page.type("#kw", "enter")#模拟键盘挨个输入字符
page.press("#kw", "Control+a") #模拟ctrl+a键
page.press("#kw", "Control+x")
4、聚焦到某个元素(focus)
page.focus('元素')
5、鼠标点击(click)
page.click()
selector参数:指定元素
button:右击、左击、中建 "left", "middle", "right",默认左
click_count:点击次数
6、鼠标双击(dbclick)
page.dbclick("元素")
7、鼠标悬浮(hover)
page.hover('#item')
8、操作复选框和单选框(check、uncheck)
适用于input[type=checkbox]
,input[type=radio]
,[role=checkbox]
或label
与复选框或单选按钮相关联
9、操作复选框和单选框(select_option)
适用于在元素中选择一个或多个选项
参考链接:https://playwright.dev/python/docs/input