日期控件大都是input标签下弹出来的,如果使用webdriver 去设置日期,

1. 定位到该input

2. 使用sendKeys 方法

比如:

但是,有的日期控件是readonly的,没法调用WebElement的sendKeys()

比如:

<inputid="BeginTime"class="form-control"type="text"style="width:120px; float:left;"value=""readonly="readonly"placeholder="入职开始时间"name="BeginTime"data-val-date="字段 BeginTime 必须是日期。"data-val="true">
<spanstyle="font-size: 20px; float: left;">-</s

办法一:使用JS remove readonly attribute,然后sendKeys

使用入职开始日期,将input标签的readonly熟悉去掉

         JavascriptExecutor removeAttribute =(JavascriptExecutor)driver;//remove readonly attributeremoveAttribute.executeScript("var setDate=document.getElementById(\"BeginTime\");setDate.removeAttribute('readonly');") ;

方法二:采用click直接选择日期,日期控件是一个iframe,首先switch iframe,之后找到想要设置的日期button click,然后switch出来

WebElement dayElement=driver.findElement(By.xpath("//span[@id='from_imageClick']"));

dayElement.click();

// WebElement frameElement=driver.findElement(By.xpath("//iframe[@border='0']"));

driver.switchTo().frame(1);

driver.findElement(By.xpath("//tr/td[@οnclick='day_Click(2015,2,21);']")).click(); 

driver.switchTo().defaultContent();

具体代码如下:

WebDriver driver=new FirefoxDriver();driver.get("http://172.178.0.183");driver.manage().window().maximize();driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);driver.manage().window().maximize();driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);JavascriptExecutor removeAttribute=(JavascriptExecutor)driver;
//remove readonly attribute
        removeAttribute.executeScript("var setDate=document.getElementById(\"BeginTime\");setDate.removeAttribute('readonly');") ;              WebElement setBeginDat=driver.findElement(By.id("BeginTime"));         setBeginDat.clear();         setBeginDat.sendKeys("2015-02-18");WebElement setEndDat=driver.findElement(By.id("EndTime"));
setEndDat.click();//WebElement frameElement=driver.findElement(By.xpath("//iframe[@border='0']"));        
         driver.switchTo().frame(1);
driver.findElement(By.xpath("//tr/td[@οnclick='day_Click(2015,2,21);']")).click();              driver.switchTo().defaultContent();

原文:http://www.cnblogs.com/tobecrazy/p/4206742.html

selenium 操作日期控件相关推荐

  1. webdriver高级应用- 操作日期控件

    1. 通过点击的方式操作日期控件 #encoding=utf-8 from selenium import webdriver import unittest, time, traceback fro ...

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

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

  3. selenium操作日历控件

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

  4. Java+Selenium自动化对非输入框的日历或日期控件的处理

    如图:          1.问题描述: 在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这 ...

  5. selenium控制日历控件

    ​在使用selenium爬取数据时,有时会需要选择日期,来获取某个时间段的数据.网页上日历控件一般是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期.这篇就介绍用selenium如何实现自 ...

  6. Wdatepicker日期控件的使用指南

    示例2-3-1 起始日期简单应用 示例2-3-2 alwaysUseStartDate属性应用 示例2-3-3 使用内置参数 示例 2-4-1: 年月日时分秒 示例 2-4-2 时分秒 示例 2-4- ...

  7. 机房系统(八)——【日期控件DTPicker、比较日期大小】

    "宁可让程序(员)多干活,也不能让用户多做".本着为用户着想.给用户以方便的原则,系统中用选代替填,给用户减少很多不必要的麻烦.     在机房系统里遇到了填写日期的问题.VB中已 ...

  8. layDate1.0正式公布,您一直在寻找的的js日期控件

    你是时候换一款日期控件了,而layDate很愿意和您成为工作伙伴.她正致力于成为全球最高大上的web日期支撑,为国内外全部从事web应用开发的同仁提供力所能及的动力.她基于原生JavaScript精心 ...

  9. Selenium处理Select控件

    Selenium处理Select控件 1.介绍: 在进行Web应用自动化测试的过程中,Select下拉框是我们经常会操作的控件,Selenium针对这种控件封装了Select类供我们测试使用.当然,也 ...

最新文章

  1. ORACLE 11G安装全过程
  2. 展望我的2022Flag
  3. Visual Studio 2017 调试 windows server 2016 Docker Container
  4. python知识总结os**
  5. Python之网络爬虫(验证码、代理IP、防反爬策略、封装一个抓取页面的函数)
  6. Disabling Shortcut Keys in Full Screen mode
  7. java.net.UnknownHostException 未知的名称或服务
  8. mybatis传参总结
  9. MQTT的学习研究(十)【转】mosquitto——一个开源的mqtt代理
  10. PHP把商品详情数据加入到商品数据,如果商品有多个详情只展示一次商品数据
  11. 机动车驾驶证扣分查询
  12. 安微六安二中2021高考成绩查询,喜报!六安一中、六安二中、毛坦厂中学......高考“成绩单”出炉...
  13. 微信小程序开发常见问题解答
  14. Spring整合RabbitMQ(包含生产者和消费者)
  15. 【Python代码实践】使用Python批量获取雨课堂图片
  16. 苹果cms重名视频怎么合并
  17. redhat linux 批量改名,CentOS的批量改名命令 rename和prename
  18. 自动阅读教程--五条app
  19. mysql实操《学生表》
  20. 【程序人生】那些争议最大的编程观点

热门文章

  1. 判断是哪一个数据库中发生了此问题查找损坏的数据库对象。连接发生问题的数据库
  2. 如何提高Mac App Store下载速度
  3. 在win7下制作MAC启动u盘
  4. macu盘格式化linux系统盘,Mac上制作Linux U盘启动盘
  5. 牛客--卡牌游戏 (概率DP 逆推) P2059
  6. 阿里云RRpc请求消息普适发送端
  7. 计算机菜单打不开,电脑右键菜单打不开怎么办
  8. valueOf()方法详解
  9. SAP 系统管理用到的T-CODE
  10. opencv c++版本图片及视频打开与保存