现状:目前前端Web页面很多都用到了前端框架,如EasyUI、React、jQuery等等,在这样的大前提下,我们在定位元素时经常会遇到各种困难,如元素只读、元素不可见等等,这篇文章我们重点讲一下只读元素的处理。

一、 我们先来举个栗子

只读元素的展示:

只读元素展示

HTML源码如下(使用的EasyUI前端框架):

二、我们如何实现修改“交易日期”

一般我们有以下两个方法:

方法一:修改HTML元素属性,通过输入方式修改(实现方式容易)

方法二:通过点击日期控件,选择年、月、日方法选择(实现方式繁琐)

这里,我们着重讲解下第一种方法,也是主流的处理方式,代码如下:

package com.amio.automation.jianshu.testSomething;

import org.openqa.selenium.By;

import org.openqa.selenium.JavascriptExecutor;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

/**

* 简书文章演示代码:测试如何修改只读元素属性

* Created by Amio on 2016/12/8.

*/

public class TestReadOnlyElement {

public static void main(String[] args) {

// 初始化浏览器Driver

WebDriver driver = new FirefoxDriver();

driver.get("https://www.xxx.com/");

driver.findElement(By.xpath("xxx")).sendKeys("xxx");

// 此处省去一万行页面处理代码

// 根据页面元素布局,编写JS代码

String jsString = "document.getElementById('workTime').nextSibling.firstChild.nextSibling.removeAttribute('readonly')";

JavascriptExecutor js = (JavascriptExecutor) driver;

js.executeScript(jsString);

// 删除readonly属性后可以直接调用WebDriver的sendKeys方法传值

driver.findElement(By.name("xxx")).sendKeys("xxx");

}

}

三、简要的JS语法讲解

document.getElementById('workTime'):从HTML中寻找ID为workTime的节点

AAA.nextSibling:AAA的下一个的兄弟节点

AAA.firstChild:AAA的第一个孩子节点

AAA.removeAttribute('readonly'):删除Key为readonly的属性值

python时间控件readonly属性_【Selenium】如何修改只读(readonly属性)元素的值相关推荐

  1. 从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)

    如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo. 关于dojo的下载, ...

  2. python时间控件readonly属性_人生苦短,我学python之python+selenium js处理日历控件(修改readonly属性)...

    转载于 上海-悠悠的博客 前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性 ...

  3. python时间控件readonly属性_Selenium2+python自动化----js处理日历控件(修改readonly属性)...

    前言 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题. 基本思路:先用j ...

  4. python时间控件readonly属性_13-js处理日历控件(修改readonly属性)

    [TOC] **前言** 日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能,以我们经常抢票的12306网站为例,详细讲解如何解决日历控件为readonly属性的问题 ...

  5. laydate时间控件有时候无效_新角度,如何无效没用地听课

    嗨喽,大家好.这一期我想向大家展示一下如何无效地听课. 1.上课的时候,全程集中注意力,每一秒都不能放松,使自己的大脑保持高度紧张中.我们这么年轻,精神充沛得很,只要累不死就往死里学. 2.下课的时候 ...

  6. python时间控件遮罩层_jquery遮罩层插件

    (function($){ $.fn.showOverlay = function(options){ /*默认配置*/ var defaults = {'switchModel':'click',' ...

  7. python+selenium:移除时间控件readonly属性,实现send_keys输入

    参考博客: python+selenium:web端关闭时间控件readonly属性,可直接输入[今天][昨天][任意]时间 类似这样的时间戳控件: 可以看到控件有:readonly 属性[只读] 一 ...

  8. python 日历控件_python selenium 处理时间日期控件(十六)

    测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日 ...

  9. python日历gui_python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例...

    PyQt5日期时间控件QDateTimeEdit介绍 QDateTimeEdit是一个允许用户编辑日期时间的控件,可以使用键盘上的上下键头按钮来增加或减少日期的时间值,QDateTimeEdit通过s ...

最新文章

  1. java中mypoiexception,java - 如何使用Poi获取Java中单元格的数据验证源? - 堆栈内存溢出...
  2. 周志华:深度学习理论探讨比应用滞后太多
  3. (HDU)1091 --A+B for Input-Output Practice (III)(输入输出练习(III))
  4. 【机器学习】特征降维-主成分分析
  5. apache压力测试
  6. 理解request.getSession(boolean create)
  7. matplotlib - 极坐标上的散点图
  8. signature=8405d26e250ad07c44560263cb1d4fc0,Systems for analyzing microtissue arrays
  9. gis发布及应用服务器,超图云GIS应用服务器平台
  10. Jeecg-boot 使用心得建议
  11. 安卓市场和安智市场_影响安卓应用市场搜索排名的五大因素
  12. Python中的问卷调查(华为机测题)
  13. Soul 网关源码阅读(四)Dubbo请求概览
  14. st语言 数组的常用方法_ST语言入门基础
  15. 2022-Java学习路线梳理
  16. 资源分享 | SAHI:超大图片中对小目标检测的切片辅助超推理库
  17. Java 简单的新增方法
  18. 浅析eTS的起源和演进
  19. 没有json数据,自己造!mockjs的使用-模拟数据其实超级简单
  20. Docker安装mysql8.0并配置忽略大小写

热门文章

  1. PHP 保留小数点后几位
  2. 什么是EDI在线数据处理与交易处理业务
  3. comsol两相流之水平集法
  4. gedit  pycharm中的常用快捷键
  5. CookieJar类
  6. python第四轮作业--容器
  7. 迅虎WordPress scocial登录插件 付费下载 授权算法
  8. Chatgpt报错:The site owner may have set restrictions
  9. 服务器x3650查看硬件日志,查看X系列服务器硬件日志
  10. 剑三千岛湖服务器是不是维护了,剑网3千岛湖倭寇泡澡怎么完成_剑网3千岛湖倭寇泡澡任务流程_牛游戏网...