首页 > 编程语言 >python+playwright 学习-53 模拟键盘操作-复制粘贴相关

python+playwright 学习-53 模拟键盘操作-复制粘贴相关

时间:2023-04-18 10:35:42浏览次数:50  
标签:Control 复制到 playwright python pyperclip 53 press page

前言

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()


2023最新《Playwright+Python自动化测试》点我 ->立即参与
联系微信:283340479

标签:Control,复制到,playwright,python,pyperclip,53,press,page
From: https://www.cnblogs.com/yoyoketang/p/17328683.html

相关文章

  • 4. python 流程控制
    一、顺序结构代码从上到下一行行执行,没有任何判断和跳转二、if分支结构python中流程控制须格外注意缩进,否则可能遇到各种奇奇怪怪的错误elseif的写法是elif注意if,else,elif后面加冒号:False、0、各种表示空的值(None,"",'',(),[],{}),在if判断时都为假;但注意"",''(一个空格)为真pas......
  • 3. python 列表、元组和字典
    一、序列简介序列是一种包含多项数据的数据结构python常见序列类型包括字符串、元组、列表等其中字符串与元组是不可变的,而列表是可变的元组创建列表使用(),而列表使用[]>>>my_tuple=('fff',20,'dddd')>>>print(type(my_tuple))<class'tuple'>>>>print(my_tuple)('fff�......
  • 2. python 变量和简单类型
    一、注释python允许在任何地方插入空字符串与注释,但不能插入到标识符和字符串中间python注释有两种形式单行注释:以#开头的一行多行注释:被三个单引号或双引号括起来的多行#这是一行注释'''这也是一行注释用三个单引号注释可多行内容'''"""这还是一行注释用三个双引号注释......
  • [oeasy]python0133_变量名_标识符_identifier_id_locals
    变量名回忆上次内容上次讲了什么是变量变量变量能变的量就是变量 各种系统、游戏就是由变量所组成的​ 添加图片注释,不超过140字(可选) 声明了变量并且定义了变量 声明就是declaration把标识符和具体值......
  • Python Django 模板的使用
    新建templates/header.html文件<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>header</title></head><body><h1>东营职业学院</h1><p>......
  • #yyds干货盘点#python循环中的 break、continue 语句及 else 子句
    break 语句和C中的类似,用于跳出最近的 for 或 while 循环。循环语句支持 else 子句;for 循环中,可迭代对象中的元素全部循环完毕,或 while 循环的条件为假时,执行该子句;break 语句终止循环时,不执行该子句。请看下面这个查找素数的循环示例:>>>forninrange(2,10):.........
  • Pythonic魔法——运算符
    在Python中,运算符是一种用于对操作数进行操作的特殊符号或函数。Python支持多种运算符,包括算术运算符、比较运算符、赋值运算符、逻辑运算符、位运算符、成员运算符和身份运算符等。算术运算符算术运算符是用于进行数学运算的运算符。Python中的算术运算符包括加法、减法、乘法......
  • Pythonic魔法——条件语句
    条件语句是编程中最常见的结构之一。在Python中,条件语句通常由if语句、elif语句和else语句组成。这些语句让我们能够根据输入或某些条件的真假情况来执行不同的代码块。本文将为您详细介绍Python条件语句的语法、用法和示例。if语句if语句是Python中最基本的条件语句......
  • 【进阶13】【自学笔记】Python logging模块封装
    一、定义  Pythonlogging模块是一个可以通过控制日志级别、输出位置等方式来实现记录日志的模块。logger对象的不同方法来记录不同级别的日志。  其中,debug()方法用于记录debug级别的日志,info()方法用于记录info级别的日志,warning()方法用于记录warning级别的日志,err......
  • 小白零基础python学习记录1
    Python程序格式框架缩进缩进用于表达程序的格式框架,有单层或多层缩进。严格明确:缩进是语法的一部分,缩进不正确程序运行会出错所属关系:是表达代码间包含和层次关系的唯一手段长度一致:程序内一致即可,一般用4个空格或1个Tab注释单行注释:以#开头,后跟注释句子多......