首页 > 编程语言 >python+playwright 学习-62 日历控件操作

python+playwright 学习-62 日历控件操作

时间:2023-05-24 10:33:39浏览次数:52  
标签:控件 playwright python 日历 sync locator page

前言

遇到输入框是弹出日历控件,选一个日期的这种场景,可以直接在输入框输入内容。如果输入框是readonly的时候,可以用js改变输入框的属性

日历控件

如果输入框是日历控件

先看能不能直接输入一个日期,如果能直接输入的情况,就不用点开了

代码示例

# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

from playwright.sync_api import sync_playwright


with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('http://127.0.0.1:8000/users/login/')
    page.locator('#username').fill('[email protected]')
    page.locator('#password_l').fill('******')
    page.locator('#jsLoginBtn').click()

    page.goto('http://127.0.0.1:8000/users/userinfo/')
    # 日历控件直接输入
    page.locator('#date_day').fill('2021-04-01')

    page.pause()

readonly 的日历控件

有些日历控件是 readonly 属性,也就是不能直接输入的

<input type="text" id="birth_day" name="birthday" value="2023-04-02" readonly="readonly">

这种情况先要执行JavaScript 去掉元素的 readonly 属性,再输入

JavaScript 操作日历控件

from playwright.sync_api import sync_playwright
# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto('http://124.70.221.221:8200/users/login/')
    page.locator('#username').fill('[email protected]')
    page.locator('#password_l').fill('******')
    page.locator('#jsLoginBtn').click()

    page.goto('http://127.0.0.1:8000/users/userinfo/')

    # 去掉元素的readonly属性
    js1 = 'document.getElementById("birth_day").removeAttribute("readonly");'
    page.evaluate(js1)
    # 直接给输入框赋值
    js2 = 'document.getElementById("birth_day").value="2021-04-01";'
    page.evaluate(js2)

    page.pause()


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

标签:控件,playwright,python,日历,sync,locator,page
From: https://www.cnblogs.com/yoyoketang/p/17372677.html

相关文章

  • python运行使用pywin32下载及安装问题
     1、python执行报错File"F:\XXX\XXX.py",line7,in<module> 运行python程序,提示错误如下:importwin32gui ModuleNotFoundError:Nomodulenamed'win32gui'该报错信息表示在F:\XXX\XXX.py中的第7行引入了win32gui,但是当前设备缺少pywin32的模块,需要安装安装方式一:直......
  • Centos7安装Python3.9
    1、 使用源码编译安装:您可以从Python官方网站下载Python3.9的源代码,并按照以下步骤进行编译和安装:安装编译所需的依赖项: sudoyuminstallgccopenssl-develbzip2-devellibffi-develzlib-develreadline-develsqlite-devel下载Python3.9的源代码包: wgethttp......
  • Python爬虫为什么需要库
    爬虫需要库是因为爬虫需要从网页中提取数据,并对数据进行处理和存储。库是一组已经封装好的工具,可以帮助爬虫快速地完成这些任务。这些库可以大大简化爬虫的开发过程,提高爬虫的效率和稳定性。Python爬虫常用的库有很多,以下是一些常用的库:1、requests:用于发送HTTP请求,获取网页内容。2......
  • Python如何自动生成文档,pdoc类库的使用
    pdoc是一个基于Python的自动文档生成工具,可以生成Python模块、类和函数的API文档。它可以将代码注释和文档字符串自动转换为HTML文档,使得开发者可以轻松地生成文档,并分享给其他人。本教程将介绍如何安装和使用pdoc生成PythonAPI文档。安装pdoc在安装pdoc之前,需要确保已经安装了Pyt......
  • python+playwright 学习-65多线程同时打开多个浏览器不同账号操作
    前言最近用小伙伴提到多线程同时操作多个浏览器,每个浏览器用不同账号登录的需求。多线程操作以下是2个账号同时打开2个浏览器操作的示例fromplaywright.sync_apiimportsync_playwrightfromthreadingimportThreaddefdo_some_thing(username,password):playwri......
  • 界面控件DevExtreme使用指南 - 如何自定义上下文菜单和工具栏
    DevExtreme FileManager(文件管理器)小部件现在支持自定义内置的工具栏和上下文菜单,用户可以使用标准和定义的命令项填充项目集合,并配置设置来更改其外观和操作。DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQu......
  • python 清除字符串中的 emoji 表情
    https://pypi.org/project/emoji/pipinstallemoji复制字符串中间有emoji表情,替换掉。text="......
  • Python中对列表list去重
    保留原顺序。old_list=[2,3,4,5,1,2,3]new_list=[]foriinold_list:ifinotinnew_list:new_list.append(i)print(new_list)#[2,3,4,5,1]用字典dict去重使用list项作为键创建dict,这将自动删除任何重复项,因为dict不能有重复的键,保留原......
  • python内置库--shutil
    1简单介绍shutil提供了一系列函数来对文件或目录进行高级操作,如复制压缩移动删除等,功能和os模块功能的很类似,但shutil更加易用shutil没有提供对单个文件的删除操作,单个文件的复制移动解压缩是支持的2相关函数shutil.make_archive()shutil.make_archive(base_name,forma......
  • PlayWright(一)
    1、如何安装?安装playwright只需要一条命令,就是pip安装命令,命令如下:pipinstallplaywright注:playwright需要Python3.7或更新的版本 2、然后安装所需要的浏览器,和selenium不同,我们不再是安装对应的浏览器驱动,所以不需要再头疼浏览器驱动版本的问题了。安装命令如下playw......