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

Checkboxradio buttons直接可以用checkuncheck方法来进行勾选和去勾选,当然其实也可以直接用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(三)的更多相关文章

  1. python 中的input

    渣渣之路. 一. 在python编程初学者指南中的第六章.使用参数和返回值的例子中: # -*- coding: utf-8 -*- def display(message): print messa ...

  2. Text input(文本输入框)

    Text input(文本输入框)是用来获得用户输入的绝佳方式. 你可以用如下方法创建: <input type="text"> 注意,input元素是自关闭的.

  3. 谈论multistage text input(中国输入法)下一个UITextView内容长度的限制

    我以前写<如何更好地限制UITextField输入长度>.接使用 UIKIT_EXTERN NSString *const UITextFieldTextDidChangeNotifica ...

  4. iOS programming Delegation and Text Input

    iOS programming Delegation and Text Input  1.1 Text Fields    CGRect textFieldRect = CGRectMake(40, ...

  5. Python中的input你真会吗?

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:一米阳光里的晴天娃娃   python中的input()方法是在控制台可 ...

  6. Jquery中input:type=radio的监听,获取设置值

    一.html <div id='demo'> <input type='radio' name='sex' value='男' > <input type='radio' ...

  7. React Native & Android & Text Input

    React Native & Android & Text Input react native clear input value https://stackoverflow.com ...

  8. [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 ...

  9. JSF 2 radio buttons example

    In JSF, "h:selectOneRadio" tag is used to render a set of HTML input element of type " ...

随机推荐

  1. Mybatis order by 动态传参出现的一个小bug

    大家好,我是老三,一个平平无奇的CRUD仔. 今天,我正在愉快地CRUD,突然发现出现一个Bug,我们来看看是怎么回事吧! 问题由来 一个简单的需求,要求把和当前用户相关的数据置顶展示. 这里,我用了 ...

  2. Scrapy 爬虫框架学习笔记(未完,持续更新)

    Scrapy 爬虫框架 Scrapy 是一个用 Python 写的 Crawler Framework .它使用 Twisted 这个异步网络库来处理网络通信. Scrapy 框架的主要架构 根据它官 ...

  3. 【洛谷P2800又上锁妖塔】动态规划

    分析 考虑上一层还是上两层还是爬上去 AC代码 #include <bits/stdc++.h> using namespace std; int f[1000005],a[1000005 ...

  4. django2.1实现全文检索(最详细)+遇到的坑+jieba分词

    首先django实现全文检索在这里使用的是haystack,环境是django2.1+win10 64+py3.7 1: 安装包: pip install dgango-haystack #安装全局检 ...

  5. 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)

    问题描述 在Azure App Service上部署了站点,想要在网站的响应头中加一个字段(Cache-Control),并设置为固定值(Cache-Control:no-store) 效果类似于本地 ...

  6. labview系列-中级计算器开发

    本例子通过对中级计算器的操练,实现对结构/字符串等基础知识的掌握和理解,为后续的编程工作提供基础. 计算器开发原理:通过按钮触发事件,再各个事件中编写相应加减乘除方法,并显示在结果中即可. 要点:临时 ...

  7. Prometheus + Alertmanager 实现企微告警

    上一篇:二进制安装Prometheus  下面准备在监控的流程中呈现到告警到企微 查看企业ID,用于后续配置文件 四.安装Alertmanager1.准备安装的包 --选择上面链接给的Linux的ta ...

  8. netty系列之:使用UDP协议

    目录 简介 UDP协议 String和ByteBuf的转换 构建DatagramPacket 启动客户端和服务器 总结 简介 在之前的系列文章中,我们到了使用netty做聊天服务器,聊天服务器使用的S ...

  9. 如何让win10开机默认开启小键盘?

    如何让win10开机默认开启小键盘? windows10默认是关闭小键盘的.每次输入开机密码的时候都需要按一下小键盘开启键(numlock),才能按数字键 一.运行注册表编辑器,修改InitialKe ...

  10. USB 3.0 开发要点

    最近在公司里安排了我一个新的任务,那就是USB3.0的研发.对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次. ...