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:hidden
visible
:有非空的边界框和非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 " ...
随机推荐
- Mybatis order by 动态传参出现的一个小bug
大家好,我是老三,一个平平无奇的CRUD仔. 今天,我正在愉快地CRUD,突然发现出现一个Bug,我们来看看是怎么回事吧! 问题由来 一个简单的需求,要求把和当前用户相关的数据置顶展示. 这里,我用了 ...
- Scrapy 爬虫框架学习笔记(未完,持续更新)
Scrapy 爬虫框架 Scrapy 是一个用 Python 写的 Crawler Framework .它使用 Twisted 这个异步网络库来处理网络通信. Scrapy 框架的主要架构 根据它官 ...
- 【洛谷P2800又上锁妖塔】动态规划
分析 考虑上一层还是上两层还是爬上去 AC代码 #include <bits/stdc++.h> using namespace std; int f[1000005],a[1000005 ...
- django2.1实现全文检索(最详细)+遇到的坑+jieba分词
首先django实现全文检索在这里使用的是haystack,环境是django2.1+win10 64+py3.7 1: 安装包: pip install dgango-haystack #安装全局检 ...
- 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
问题描述 在Azure App Service上部署了站点,想要在网站的响应头中加一个字段(Cache-Control),并设置为固定值(Cache-Control:no-store) 效果类似于本地 ...
- labview系列-中级计算器开发
本例子通过对中级计算器的操练,实现对结构/字符串等基础知识的掌握和理解,为后续的编程工作提供基础. 计算器开发原理:通过按钮触发事件,再各个事件中编写相应加减乘除方法,并显示在结果中即可. 要点:临时 ...
- Prometheus + Alertmanager 实现企微告警
上一篇:二进制安装Prometheus 下面准备在监控的流程中呈现到告警到企微 查看企业ID,用于后续配置文件 四.安装Alertmanager1.准备安装的包 --选择上面链接给的Linux的ta ...
- netty系列之:使用UDP协议
目录 简介 UDP协议 String和ByteBuf的转换 构建DatagramPacket 启动客户端和服务器 总结 简介 在之前的系列文章中,我们到了使用netty做聊天服务器,聊天服务器使用的S ...
- 如何让win10开机默认开启小键盘?
如何让win10开机默认开启小键盘? windows10默认是关闭小键盘的.每次输入开机密码的时候都需要按一下小键盘开启键(numlock),才能按数字键 一.运行注册表编辑器,修改InitialKe ...
- USB 3.0 开发要点
最近在公司里安排了我一个新的任务,那就是USB3.0的研发.对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次. ...