【基于python实现UI自动化】3.4 JS 处理日历控件(删除 readonly 属性)
python-UI自动化
- 1.0 selenium工具介绍
- 2.0 selenium环境搭建
- 3.0 selenium常见8大元素定位
- 3.1 selenium通过By定位元素
- 3.2 selenium通过JS定位元素
- 3.3 JS处理浏览器滚动条
- 3.4 JS 处理日历控件(删除 `readonly` 属性)
- 3.4.1 参考代码
- 结尾
1.0 selenium工具介绍
1.0 selenium工具介绍
2.0 selenium环境搭建
2.0 selenium环境搭建
3.0 selenium常见8大元素定位
3.0 selenium - webdriver常见8大元素定位
3.1 selenium通过By定位元素
3.1 selenium通过By定位元素
3.2 selenium通过JS定位元素
3.2 selenium通过JS定位元素
3.3 JS处理浏览器滚动条
3.3 JS处理浏览器滚动条
3.4 JS 处理日历控件(删除 readonly
属性)
日历控件是我们在自动化中常见的场景之一,有些日期输入框是可以输入的,有些不能。
原因是因为日历控件上的
readonly
属性引起的。
下面我们以ECShop管理后台为例,来解决日历控件上的readonly属性问题。
处理的思路:
通过
JS
去掉readonly
属性;根据JS定位元素的所在位置,然后用
removeAttribute(属性名称)
方法删除标签对应的属性。
通过定位日期输入框,输入日期内容。
输入日期前,一般日期控件都会有默认的日期显示,所以要先清空输入框的内容。通过
clear()
方法清除后再输入内容。2.1. 使用
常见的8大元素定位
输入日期内容,这里就不展开细讲selenium的8大元素定位,详情点击链接:常见的8大元素定位学习。
对应代码如下:
2.2. 使用JS
定位输入日期内容,其实不难,只要将value
属性改变对应值就可以了。
3.4.1 参考代码
from selenium import webdriver
from time import sleepdriver = webdriver.Chrome()
driver.maximize_window()
driver.get('http://192.168.0.110/ecshop/admin/privilege.php?act=login')
# 登录操作
driver.find_element_by_name('username').send_keys("admin")
driver.find_element_by_name('password').send_keys("a1234567")
driver.find_element_by_class_name('button').click()# 点击夺宝奇兵操作
driver.switch_to.frame(driver.find_element_by_id('menu-frame'))
sleep(0.2)
driver.find_element_by_css_selector('#menu-ul > li:nth-child(2) > ul > li:nth-child(1) > a').click()
driver.switch_to.default_content()
sleep(0.2)# 点击添加夺宝奇兵
driver.switch_to.frame(driver.find_element_by_id('main-frame'))
sleep(0.2)
driver.find_element_by_css_selector('body > h1 > span.action-span > a').click()
sleep(0.1)# 去除日期上readonly属性
js_del_readonly = 'document.getElementById("start_time_id").removeAttribute("readonly");'
# 执行JS脚本
driver.execute_script(js_del_readonly)
# 定位开始日期输入框元素
start_time = driver.find_element_by_css_selector('#start_time_id')
# 清除输入框文本内容
start_time.clear()
# 输入对应值的日期
start_time.send_keys("2021-02-11 00:00")# 使用js定位元素并清空内容
js_clear_time = 'document.getElementById("start_time_id").value="";'
# 执行JS脚本
driver.execute_script(js_clear_time)
# 使用js定位元素并输入日期内容
js_write_time = 'document.getElementById("start_time_id").value="2021-02-11 00:00";'
# 执行JS脚本
driver.execute_script(js_write_time)
# 关闭浏览器
sleep(3)
driver.quit()
结尾
又到了习惯性的文章结尾,如果你觉得文章对你有帮助,请动起你们的小手手点下赞(大拇指)哈(一键三连更好),Thanks♪(・ω・)ノ。
【基于python实现UI自动化】3.4 JS 处理日历控件(删除 readonly 属性)相关推荐
- python时间控件readonly属性_Selenium2+python自动化----js处理日历控件(修改readonly属性)...
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...
- python时间控件readonly属性_人生苦短,我学python之python+selenium js处理日历控件(修改readonly属性)...
转载于 上海-悠悠的博客 前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性 ...
- 艺赛旗(RPA)selenium 利用 js 处理日历控件
艺赛旗 RPA8.0全新首发免费下载 点击下载 http://www.i-search.com.cn/index.html?from=line1 详细内容请参看艺赛旗官网支持栏目:RPA社区 点击链接 ...
- Python+selenium自动化-js处理日历控件(修改readonly属性)
前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...
- js给input控件添加onkeypress属性
js给input控件添加onkeypress属性 在前台直接添加onkeypress可以实现. <ul class="r1"><li><span> ...
- Selenium2+python自动化25-js处理日历控件(修改readonly属性)
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...
- pythongui日历控件_Selenium2+python自动化25-js处理日历控件(修改readonly属性)
前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...
- python时间控件readonly属性_13-js处理日历控件(修改readonly属性)
[TOC] **前言** 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题 ...
- python+uiautomator2 UI自动化
python+uiautomator2 UI自动化 uiautomator2 是一个可以使用Python对Android设备进行UI自动化的库. 其底层基于Google uiautomator,Goo ...
最新文章
- 资源 | 2018年值得关注的200场机器学习会议(建议收藏)
- JScript多语言语法加亮引擎显示(代码精简)
- MySQL 3.23 中文参考手册
- 配置文件加载位置||外部配置加载顺序||自动配置原理
- asp程序错误详细说明例表
- linux平台 一个简单的helloworld静态库的制作与使用
- tail | grep引起的内存升高【对比三天数据】
- delphi中combobox键值对
- Cloud for Customer的shell布局介绍
- jvm锁_JVM如何处理锁
- 认识计算机系统反思,《计算机系统组成》教学反思
- java.lang.AbstractMethodError: org.apache.xerces.dom.DocumentImpl.setXmlVersion
- JVM虚拟机-Class文件简介
- JAVA加勒比_【JAVA】synchronized关键字
- 大学生网页设计课程大作业1
- 学计算机的写论文题目,经典本科计算机论文选题 本科计算机论文题目怎样取...
- 通达OA2013完美平台补丁以及手机短信服务配置
- 在线客服系统|物流行业解决方案——助力企业构建物流行业新一体化模式
- 写个.net开发者的Linux迁移指南
- 百度网盘下载提速方法(更新于2020年6月)
热门文章
- 抓取Systrace方法汇总
- 视频会议行业一路飙红 是什么在成就?
- css3中使用calc()计算宽高
- 【维生素C语言】第十章 - 指针的进阶(上)
- Kali系统目录结构介绍2021
- 罗剑锋透视HTTP协议学习笔记---24 | 固若金汤的根本(上):对称加密与非对称加密
- Centos7 安装 机器学习环境(PIP + Python3.7 + Cython + Jupyter Notebook + Docker + 虚拟机网络环境)
- Nginx的5大应用场景
- 比尔·盖茨流行病警告未被采纳?为新冠流行埋下伏笔
- 面向对象设计的七大原则 (包括SOLID原则)