playwright-python 处理Text input、Checkboxs 和 radio buttons(三)
Text input
输入框输入元素,直接用fill方法即可,支持 <input>,<textarea>, [contenteditable] 和<label>这些标签,如下代码:
page.fill('#name', 'Peter');
# 日期输入
page.fill('#date', '2020-02-02')
# 时间输入
page.fill('#time', '13-15')
# 本地日期时间输入
page.fill('#local', '2020-03-02T05:15')
# 通过label输入
page.fill('text=First Name', 'Peter')
Checkboxes 和 radio buttons
Checkbox 和 radio buttons直接可以用check和uncheck方法来进行勾选和去勾选,当然其实也可以直接用click方法来通过点击来进行勾选和去勾选,代码如下(添加时间等待是为了看到效果~):
from playwright import sync_playwright
import time
with sync_playwright() as p:
browser_type = p.chromium
browser = browser_type.launch(headless=False, ) # args=["--start-maximized"]
context = browser.newContext()
page = context.newPage()
page.goto('http://lucas234.gitee.io/static-demo/index.html')
page.click("#currentaccount")
# page.check("#currentaccount")
time.sleep(3)
page.click("#currentaccount")
# page.uncheck("#currentaccount")
time.sleep(3)
context.close()
page.close()
Select options
可以单选或者多选,但是只针对<select>元素标签有效果,对于自定义的dropdown(<datalist>、<div>、<ul>等)不能用selectOption函数
from playwright import sync_playwright
import time
with sync_playwright() as p:
browser_type = p.chromium
browser = browser_type.launch(headless=False, ) # args=["--start-maximized"]
context = browser.newContext()
page = context.newPage()
page.goto('http://lucas234.gitee.io/static-demo/index.html')
page.click("#dropdownlist")
# 一、通过value值选择
page.selectOption("#cars", "saab")
# 二、通过标签选择
# page.selectOption("#cars", {"label": "Saab"})
# 三、还可以通过元素handle处理
# page.querySelector("#cars").selectOption("saab")
# 多选
# page.selectOption('select#colors', ['red', 'green', 'blue'])
time.sleep(3)
context.close()
page.close()
自动等待机制
默认元素的操作都有等待的机制,例如click操作将会:
- 等待元素出现在
DOM树中 - 等待元素可见:有非空的边界框和非
visibility:hidden - 等待元素稳定:例如
css动画结束 - 滑动到可视区域
- 等待它在动作点接收指针事件:例如,等待元素不再被其他元素遮挡
- 如果在上述任一检查中不符合,则会重新检查,直到超时
也可以显示的等待:
可以自定义超时时间,state有四种状态:"attached", "detached", "hidden", "visible":
attached:等待元素出现在DOM树中detached:等待元素消失在DOM树中hidden:等待元素从DOM中分离出来,或者有一个空的边界框或visibility:hiddenvisible:有非空的边界框和非visibility:hidden
# state="attached", "detached", "hidden", "visible"
page.waitForSelector('#browsers', state='visible', timeout=30000)
参考
python官方文档已经出来了,文档
playwright-python 处理Text input、Checkboxs 和 radio buttons(三)的更多相关文章
- python 中的input
渣渣之路. 一. 在python编程初学者指南中的第六章.使用参数和返回值的例子中: # -*- coding: utf-8 -*- def display(message): print messa ...
- Text input(文本输入框)
Text input(文本输入框)是用来获得用户输入的绝佳方式. 你可以用如下方法创建: <input type="text"> 注意,input元素是自关闭的.
- 谈论multistage text input(中国输入法)下一个UITextView内容长度的限制
我以前写<如何更好地限制UITextField输入长度>.接使用 UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotifica ...
- iOS programming Delegation and Text Input
iOS programming Delegation and Text Input 1.1 Text Fields CGRect textFieldRect = CGRectMake(40, ...
- Python中的input你真会吗?
前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:一米阳光里的晴天娃娃 python中的input()方法是在控制台可 ...
- Jquery中input:type=radio的监听,获取设置值
一.html <div id='demo'> <input type='radio' name='sex' value='男' > <input type='radio' ...
- React Native & Android & Text Input
React Native & Android & Text Input react native clear input value https://stackoverflow.com ...
- [Angular2 Form] Create Radio Buttons for Angular 2 Forms
Using Radio Buttons in Angular 2 requires a basic understanding of forms as well as how their labels ...
- JSF 2 radio buttons example
In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...
随机推荐
- 【动画消消乐】HTML+CSS 自定义加载动画 065
前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计 ...
- JDBC连接流程
ConectionFactory cf = new ConectionFactory();//创建数据库连接Connection con = cf.getConection();//打开水数据库的连接 ...
- Flask之 Marshmallow 踩坑实录
1.Marshmallow.ModelSchema 报错 AttributeError: 'Marshmallow' object has no attribute 'ModelSchema' `fr ...
- php-socket通信演示
client: error_reporting(E_ALL); set_time_limit(0); echo "<h2>TCP/IP Connection</h2> ...
- ThinkPHP5 5.0.22/5.1.29 远程代码执行漏洞
http://192.168.49.2:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_ar ...
- 🔥 LeetCode 热题 HOT 100(81-90)
337. 打家劫舍 III 思路:后序遍历 + 动态规划 推荐题解:树形 dp 入门问题(理解「无后效性」和「后序遍历」) /** * Definition for a binary tree nod ...
- Python小白的数学建模课-15.图论基本概念
图论中所说的图,不是图形图像或地图,而是指由顶点和边所构成的图形结构. 图论不仅与拓扑学.计算机数据结构和算法密切相关,而且正在成为机器学习的关键技术. 本系列结合数学建模的应用需求,来介绍 Netw ...
- CVPR2021 | Transformer用于End-to-End视频实例分割
论文:End-to-End Video Instance Segmentation with Transformers 获取:在CV技术指南后台回复关键字"0005"获取该论文 ...
- Thunder DLL Hijacking
简记 原理基础啥的俺也不写了 1.寻找DLL 生成恶意dll文件 拿calc测试 2.放入 3.打开
- 心酸!30岁深漂失业3个月,从巅峰跌落谷底,大龄Android开发必须要懂的事!
2021年3月,我的前同事,在我们群里说他准备回老家了,问我们有没有人可以暂时收养他的猫. --他说,这周末就要离开深圳了. 他失业了.3个多月没收入,还要交着房租,过年来之后找了快一个月的工作也没有 ...