【playwright】新一代自动化测试神器playwright+python系列课程26_playwright模拟键盘操作

Playwright模拟键盘操作

在模拟键盘操作这块,playwright也提供了多种方法来实现,模拟键盘操作,定位到元素使用press()方法:

page.locator.press()

定位元素后操作键盘

page.keyboard.press()

直接操作键盘

keyboard.down() 和 keyboard.up() 

我们先来熟悉一下locator.press ()的使用

实践代码

# '''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
# '''

from playwright.sync_api import Playwright, sync_playwright, expect
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化
context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器
page = context.new_page() # 打开一个新标签页
page.goto("http://127.0.0.1:8080/oa/") # 打开网址
page.wait_for_timeout(2000)
page.locator("input[name=\"loginId\"]").fill("sup")
page.locator("input[name=\"password\"]").fill("s1234567")
page.get_by_role("button", name="登录").press('Enter') #按回车键代替点击
page.wait_for_timeout(2000)
page.get_by_text('新建事项').click()
page.wait_for_timeout(2000)
frame = page.frame_locator('#iframe_main')
ele = frame.locator('#subject')
ele.fill('键盘案例')
ele.press('Control+a')#全选
page.wait_for_timeout(2000)
ele.press('Control+c')#复制
page.wait_for_timeout(2000)
frame2 = frame.frame_locator('#baidu_editor_0')
frame2.locator('//body').press('Control+v') #粘贴
page.wait_for_timeout(1000)
frame2.locator('//body').press('Shift+A') #按下大写A
page.wait_for_timeout(10000)
context.close()
browser.close()
playwright.stop()

press()方法支持的按键有:
Backquote, Minus, Equal, Backslash, Backspace, Tab, Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, F1 - F12, Digit0 - Digit9, KeyA - KeyZ, etc.
其他使用案例:
#按住 Shift +右箭头→

page.get_by_role("textbox").press("Shift+ArrowRight")

按键盘上的 $ 符号

page.get_by_role("textbox").press("$")

接下来熟悉一下keyboard.press()的使用

 '''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
'''

from playwright.sync_api import Playwright, sync_playwright, expect
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化
context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器
page = context.new_page() # 打开一个新标签页
page.goto("http://127.0.0.1:8080/oa/") # 打开网址
page.wait_for_timeout(2000)
page.locator("input[name=\"loginId\"]").fill("sup")
page.locator("input[name=\"password\"]").fill("s1234567")
page.get_by_role("button", name="登录").press('Enter') #按回车键代替点击
page.wait_for_timeout(2000)
page.get_by_text('新建事项').click()
page.wait_for_timeout(2000)
frame = page.frame_locator('#iframe_main')
ele = frame.locator('#subject')
ele.fill('键盘案例')
# ele.press('Control+a')#全选
page.keyboard.press("Control+A")
page.wait_for_timeout(2000)
page.keyboard.press('Control+c')#复制
ele.click() # 通过点击取消文字的选中状态
page.wait_for_timeout(1000)
frame2 = frame.frame_locator('#baidu_editor_0')
frame2.locator('//body').click() # 把光标点到大输入框
page.keyboard.press('Control+v') #粘贴
page.wait_for_timeout(1000)
page.keyboard.press('Shift+A') #按下大写A
page.wait_for_timeout(10000)
context.close()
browser.close()
playwright.stop()

需要注意的是,光标在那个元素,keyboard.press()模拟按键操作应用再那个元素。

keyboard.down() 和 keyboard.up(),这两个一般时组合使用的。

实践代码:

# '''
# author: 测试-老姜   交流微信/QQ:349940839
# 欢迎添加微信或QQ,加入学习群共同学习交流。
# QQ交流群号:877498247
# 西安的朋友欢迎当面交流。
# '''

from playwright.sync_api import Playwright, sync_playwright, expect
playwright = sync_playwright().start()
browser = playwright.chromium.launch(headless=False, args=['--start-maximized']) #默认无头模式,设置浏览器最大化
context = browser.new_context(no_viewport=True) # 创建上下文,相当浏览器于实例化,即打开浏览器
page = context.new_page() # 打开一个新标签页
page.goto("https://cps-check.com/cn/test-keyboard") # 打开键盘操作网址
page.wait_for_timeout(2000)
page.keyboard.down('Shift') #按下Shift
page.wait_for_timeout(500) # 松开Shift
page.keyboard.up('Shift')
page.wait_for_timeout(2000)
page.keyboard.down('Control') # 按下Control
page.keyboard.down('c') # 按下字母c
page.wait_for_timeout(500)
page.keyboard.up('Control') # 松开Control
page.keyboard.up('c') # 松开字母C
page.wait_for_timeout(2000)
context.close()
browser.close()
playwright.stop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值