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. .net core工具组件系列之Redis—— 第一篇:Windows环境配置Redis(5.x以上版本)以及部署为Windows服务

    Cygwin工具编译Redis Redis6.x版本是未编译版本(官方很调皮,所以没办法,咱只好帮他们编译一下了),所以咱们先下载一个Cygwin,用它来对Redis进行编译. Cygwin下载地址: ...

  2. 开发工具IDE从入门到爱不释手(六)常用插件Git

    Git 环境准备 本地基本操作 本地文件关联git管理 文件提交git Ctrl+K:提交 关联远程仓库 先注册github账号 连接本地 git菜单 撤销提交 追加提交 Code Review

  3. 构建后端第2篇之---springb @ComponentScan注解使用

    张艳涛写于2021-2-8日 构建后端项目的时候遇到一个问题,在zyt-auth项目的依赖定义了@Component类,这个类在项目启动的时候提示没有找到bean Field tokenService ...

  4. 机器学习 - k-means聚类

    k-means简介 k-means是无监督学习下的一种聚类算法,简单说就是不需要数据标签,仅靠特征值就可以将数据分为指定的几类.k-means算法的核心就是通过计算每个数据点与k个质心(或重心)之间的 ...

  5. "virtualbox for mac安装器遇到了一个错误, 导致安装失败. 请联系软件制造商以获得帮助"的解决办法

    virtualbox下载地址: https://www.virtualbox.org/wiki/Downloads 原因:"Mac OS 10.13.4 会阻止外部内核扩展的安装" ...

  6. 透视RPC协议:SOFA-BOLT协议源码分析

    前提 最近在看Netty相关的资料,刚好SOFA-BOLT是一个比较成熟的Netty自定义协议栈实现,于是决定研读SOFA-BOLT的源码,详细分析其协议的组成,简单分析其客户端和服务端的源码实现. ...

  7. 电脑常用快捷键及常用的DOS命令

    电脑常用快捷键 Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+A:全选 Ctrl+X:剪切 Ctrl+Z:撤销 Ctrl+S:保存 Alt+F4:关闭窗口 Shift+delete:永久删除 Wi ...

  8. BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf)+[极客大挑战 2019]LoveSQL(联合注入)

    BUUCTF-[极客大挑战 2019]BabySQL(联合注入绕过waf) 记一道联合注入的题,这道题存在过滤. 经过手工的测试,网站会检验用户名和密码是否都存在,如果在用户名处插入注入语句,语句后面 ...

  9. IntelliJ IDEA 中为Maven 配置阿里云镜像源

    idea中查看位置,应该都是一样的这个位置 在此位置下新建一个.xml文件 内容如下: <?xml version="1.0" encoding="UTF-8&qu ...

  10. 代码部署:使用 nginx 代理到云服务器 ( windows 系统)

    在部署之前我们首先要了解什么是nginx,它又可以做什么 Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,00 ...