很多人问时间日期的空间怎么处理,但是时间日期控件各种各样,你可能遇到正常点的像这样:

当然也可能遇到难点的,像这样:

当然,也不排除会遇到变态的,像这样:

呵呵,真要一个个想着怎么去选择,简直是非人类干的事!那么该怎么办?其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了!但是,很多此类型input框都是禁止手动输入的,怎么办?很简单,用js把禁止输入的readonly属性干掉就好了。来吧,看一下示例:

示例网址:http://www.sucaijiayuan.com/api/demo.php?url=/demo/20141108-1/

代码:

# -*- coding: utf- -*- 
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get('http://www.sucaijiayuan.com/api/demo.php?url=/demo/-/')
driver.switch_to.frame('iframe')
#js = "document.getElementById('txtBeginDate').removeAttribute('readonly')"
# .原生js,移除属性#
js = "$('input[id=txtBeginDate]').removeAttr('readonly')"
# .jQuery,移除属性
# js = "$('input[id=txtBeginDate]').attr('readonly',false)"
# .jQuery,设置为false js = "$('input[id=txtBeginDate]').attr('readonly','')"
# .jQuery,设置为空(同3) driver.execute_script(js) driver.find_element_by_id('txtBeginDate').send_keys('2016-08-24')
sleep()
print driver.find_element_by_id('txtBeginDate').get_attribute('value') driver.quit() 结果:
--

看,我一下子给了你四种写法。当然你去选也没有问题,就是一堆div、ul、li,但是我想说对于日期时间控件,认真你就输了,绕过去才是真理,就像验证码一样,这个东西去深究,一点意义也没有嘛,所以这里就不推荐也不写这种方法的示例了。

当然,这里还得说一下,有人说他遇到的日期时间框没有id、name,这里提醒一下,这就是普通的input框,定位方法太多了,class、tag name、xpath、css,总有一种适合你。同时友情提醒一下:注意时刻提防iframe!

时间日期控件的处理-Selenium的更多相关文章

  1. 第32讲 UI组件之 时间日期控件DatePicker和TimePicker

    第32讲 UI组件之 时间日期控件DatePicker和TimePicker 在Android中,时间日期控件相对来说还是比较丰富的.其中, DatePicker用来实现日期输入设置,    Time ...

  2. mui 时间日期控件(浏览器上无法查看,在手机端可以点击)

    <head> <meta charset="utf-8"> <meta name="viewport" content=" ...

  3. bootstrap datetimepicker时间日期控件

    github地址:https://github.com/smalot/bootstrap-datetimepicker Both Date and Time picker widget based o ...

  4. js jsp 时间 日期 控件 插件 简单 实用

    js时间控件一般都是找网上的用,这东西平常很少涉及到,一用到找起来却烦死人,不是没用就是太复杂,今天向大家推荐一个简单实用的控件,该控件在不断更新,而且有专门的网站对它进行维护,所以值得一看. 先说它 ...

  5. layer过去的时间不能选择,只能选择未来的时间 LayUI中的时间日期控件,设置时间范围,

    默认Layui中的时间控件显示如下: 我当时系统时间是2018-06-07, 我需要做的是2018-06-07之后过去的时间不能选择 <p><span>时间范围:</sp ...

  6. JS——时间日期控件

    原文:http://blog.sina.com.cn/s/blog_621768f30100qmfz.html 今天找到一个还不错的日历控件 下载地址:http://www.my97.net/dp/d ...

  7. yii2时间日期控件的使用[转]

    注:原文http://www.manks.top/yii2-datetimepicker.html 有更改 1.安装 进入到项目文件中D:\phpStudy\WWW\yii2blog    使用cmd ...

  8. Android入门之时间日期控件

    效果图: MainActivity.java package com.jkxqj.helloandroid; import android.app.Activity; import android.o ...

  9. Selenium+java - 日期控件的处理

    前言 一般的日期控件都是input标签下弹出来的,设置日期使用selenium中的sendKeys 方法就可以解决. 但是我们也会碰到下面的时间日期控件(这个时候这个文本框是不允许我们输入时间的)如图 ...

随机推荐

  1. CRC码计算

    循环冗余校验检错方案 上节介绍的奇偶校验码(PCC)只能校验一位错误,本节所要介绍的循环冗余校验码(CRC)的检错能力更强,可以检出多位错误. 1. CRC校验原理 CRC校验原理看起来比较复杂,好难 ...

  2. 安装appium需要注意的事项

    参考 虫师 的博客园  :http://www.cnblogs.com/fnng/p/4560298.html 1.其中第二篇中,打开命令行用的不是windows中的cmd打开的界面,而是用node. ...

  3. Java开发进阶技能(附文章引用链接)

    一.玩转源码 1.Java+Selenium3方法篇0-如何在Eclipse上查看Selenium源码 (在github上下载源码)

  4. Spring缓存源码剖析:(二)CacheManager

    一.CacheManager总览 如果需要Spring缓存可以正常工作,必须配置一个CacheManager. CacheManager实现类你可以配置Spring-context本身提供的Simpl ...

  5. yield-from示例

    #!/usr/bin/python3# -*- coding: utf-8 -*-# @Time    : 2018/6/20 9:13# @File    : yield_from11.py fro ...

  6. 10.solr学习速成之高亮显示

    Solr高亮显示的三种实现 高亮显示在搜索中使用的比较多,比较常用的有三种使用方式,如果要对某field做高亮显示,必须对该field设置stored=true .          第一种是普通的高 ...

  7. C#中用SerialPort类中的Write()方法发送十六进制数

    在C#中用SerialPort类中的Write()方法向串口发送十六进制数的方法: MSDN对SerialPort::Write()是这样解释的: 将数据写入串行端口输出缓冲区. 重载列表   名称 ...

  8. ubuntu12上部署Django1.8.4+uwsgi+nginx超级详细流程配置到云服务器

    环境: 系统:ubuntu12,系统自带默认有python2.7 框架:Django1.8.4,需要python2.7以上才能支持   前言: 用户浏览器发送http请求->nginx(静态文件 ...

  9. How to fix apt-get GPG error NO_PUBKEY Ubuntu 14

      This morning when I do apt-get update on my new Ubuntu 14.04 server, I got these error messages: R ...

  10. 移植RT2870无线网卡驱动到s3c2416

    公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤. 1.下载驱动源码,雷凌官网的下载地址是: http://www.ralinktech.com ...