一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期,
1. 定位到该input
2. 使用sendKeys 方法
比如:

使用定位:

driver.findElement(By.xpath(".//input[@ng-change='onClickStartTime()']")).sendKeys("2016-07-04");

但是,有的日期控件是readonly的

比如:
<input class="form-control getTime ng-touched valid ng-valid-parse ng-valid ng-valid-required ng-pristine" type="text" required="" name="establish_time" ng-model="addStationInfo.establish_time" ng-readonly="true" readonly="readonly"/>

这个时候,没法调用WebElement的sendKeys()

方案一:使用JS remove readonly attribute,然后sendKeys
  1.  
    //选择建立时间--清除日期控件是readonly属性
  2.  
    JavascriptExecutor removeAttribute = (JavascriptExecutor)driver;
  3.  
    //remove readonly attribute
  4.  
    removeAttribute.executeScript("var setDate=document.getElementsByName(\"establish_time\")[0];setDate.removeAttribute('readonly');") ;
  5.  
    stationManagePage.I_establishTime().sendKeys(I_establishTime);

方案二:采用click直接选择日期,日期控件是一个iframe,首先switch iframe,之后找到想要设置的日期button click,然后switch出来:(这个方案没试过,以后用到了来完善代码)

  1.  
    WebElement dayElement=driver.findElement(By.xpath("//span[@id='from_imageClick']"));
  2.  
    dayElement.click();
  3.  
    // WebElement frameElement=driver.findElement(By.xpath("//iframe[@border='0']"));
  4.  
    driver.switchTo().frame(1);
  5.  
    driver.findElement(By.xpath("//tr/td[@onclick='day_Click(2015,2,21);']")).click();
  6.  
    driver.switchTo().defaultContent();

Selenium webdriver操作日历控件的更多相关文章

  1. Selenium webdriver 操作日历控件

    一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如: 但是,有的日期控件是readonly的 比如1 ...

  2. Java+selenium 如何操作日历控件

    场景:一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 但是,有的日期控件是readonly的 ,比如神 ...

  3. selenium操作日历控件

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

  4. selenium webdriver——JS操作日历控件

    一般的日期控件都是input标签下弹出来的,如果使用webdriver 去设置日期, 1. 定位到该input 2. 使用sendKeys 方法 比如 但是,有的日期控件是readonly的 比如12 ...

  5. Selenium webdriver 之select 控件封装,解决onchange问题

    使用webdriver的时候,select 控件经常会绑定onchange 事件,在selenium2.09 之前click 方法对onchange 事件有bug,2.09 以后修复了,但是根据经验也 ...

  6. selenium+Python(Js处理日历控件)

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

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

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

  8. selenium - js日历控件处理

    # 13. js处理日历控件 ''' 在web自动化的工程中,日历控制大约分为两种: 1. 可以直接输入日期 2. 通过日历控件选择日期 基本思路: 利用js去掉readonly属性,然后直接输入时间 ...

  9. PyQt5日历控件及相关操作

    1.日历控件QCalendarWidget控件import sys,mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQ ...

随机推荐

  1. [UE4]Text Box

    Text Box:文本输入控件. 一.新建一个名为testTextBox的UserWidget,添加一个名为“EditableTextBox_0”的TextBox到默认容器Canvas Panel 二 ...

  2. ZooKeeper和CAP理论及一致性原则

    一.CAP理论概述CAP理论告诉我们,一个分布式系统不可能同时满足以下三种 一致性(C:Consistency)可用性(A:Available)分区容错性(P:Partition Tolerance) ...

  3. Getting started - RN1

    0. down yarn https://yarnpkg.com 1. Expo Cli 此环境用于开发或学习之用. (1)install npm install -g expo-cli (2) us ...

  4. react购物车

    import React, { Component } from 'react';   import {Tabs} from './Tabs'   import 'whatwg-fetch'   im ...

  5. Sklearn (一) 监督学习

    本系列博文是根据SKlearn的一个学习小结,并非原创!  1.直接学习TensorFlow有点不知所措,感觉需要一些基础知识做铺垫.  2.之前机器学习都是理论<Ng机器学习基础>+底层 ...

  6. android 开发 View _13 绘制图片与BitmapShader位图的图像渲染器

    BitmapShader位图的图像渲染器 TileMode 模式 Shader.TileMode.CLAMP 边缘拉伸. Shader.TileMode.MIRROR 在水平方向和垂直方向交替景象, ...

  7. 多个css样式合并到一个“目录”css文件中

    执行访问jsp后发现没有效果 同样的代码,在html中效果对比如下: 具体原因:不清楚,暂时记着~~~在jsp中不支持@import这种css样式的引用

  8. 【Noip模拟 20160929】花坛迷宫

    题目描述 圣玛格丽特学园的一角有一个巨大.如迷宫般的花坛.大约有一个人这么高的大型花坛,做成迷宫的形状,深受中世纪贵族的喜爱.维多利加的小屋就坐落在这迷宫花坛的深处.某一天早晨,久城同学要穿过这巨大的 ...

  9. vim 多行添加注释,取消注释

    转发 已经验证 https://blog.csdn.net/SuiXin_123/article/details/81393397

  10. 一次sendmsg的改造过程

    比较蛋疼的一个改造过程,简单记录一下. 场景:用户态使用sendmsg发包,tcp报文,由于内核实现过程中存在一次kernel_read,也就是存在将pagecache中的内容拷贝一次的问题. 为了减 ...