900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python 日历控件_python selenium 处理时间日期控件(十六)

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

时间:2022-04-26 19:18:25

相关推荐

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

测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现。

1.首先我们看一下如何通过层级定位来操作时间控件。

通过示例图可以看到,日期控件是无法输入日期,点击后弹出日期列表供我们选择日期,自己找了一个日期控制演示一下,通过两次定位,选择了日期

#-*- coding:utf-8 -*-

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("file:///C:/Users/hunk/Desktop/bootstrap-datetimepicker/bootstrap-datetimepicker/demo/index.html")

driver.find_element_by_xpath('/html/body/div[1]/form/fieldset/div/div[1]/input[1]').click() #首先需要点击日期输入框

driver.find_element_by_xpath('/html/body/div[2]/div[3]/table/tbody/tr[3]/td[7]').click() #选择具体的日期

time.sleep(5)

driver.quit()

通过层级定位很简单,但是有时候会涉及到frame时候此时需要切换frame,关键点还是在元素定位。

2.下面看下通过js来操作日期控件,首先我们了解下我们通js实现的原理。

通过我们开发者工具观察,input标签由于readonly 属性,所以日期控件是不允许输入的,那么我们主要通过js来删除或者readonly制成否,这样可以直接允许输入。

1.通过js操作,首先我们需要定位到input标签,然后再次删除readonly属性

js = "$('input:eq(0)').removeAttr('readonly')" # jQuery,移除属性

2.通过js操作,首先我们需要定位到input标签,然后readonly 是false

js = "$('input:eq(0)').attr('readonly',false)"

调用execute_script方法来执行js,来处理时间控件,然后我们可以直接输入日期。

#-*- coding:utf-8 -*-

import time

from selenium import webdriver

driver = webdriver.Chrome()

driver.get("file:///C:/Users/hunk/Desktop/bootstrap-datetimepicker/bootstrap-datetimepicker/demo/index.html")

js = "$('input:eq(0)').removeAttr('readonly')" # jQuery,移除属性

# js = "$('input:eq(0)').attr('readonly',false)" # jQuery,设置为false

driver.execute_script(js)

input_datetime = driver.find_element_by_xpath('/html/body/div[1]/form/fieldset/div/div[1]/input[1]')

input_datetime.send_keys("-09-21")

input_datetime.click()

time.sleep(5)

driver.quit()

下面看下效果,这样我们很轻易的就输入了日期。

python selenium 处理时间日期控件

# -*- coding: utf-8 -*- from selenium import webdriverfrom time import sleep driver = webdriver.Fire ...

12 Python+selenium对日期控件进行处理(采用执行JS脚本)

[环境信息] Python34+IE+windows [说明] 1.对于日期控件,没有办法通过定位元素再直接传值的方式处理.可以采用执行JavaScript处理. PS:还要去学学js怎么写, ...

Selenium+java - 日期控件的处理

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

selenium 处理日期控件

今天遇到日期控件无法处理的问题,在北京-air的帮助下,看了下这篇blog /Fskjb/archive//10/27/2227111.html 根 ...

Python语言编写脚本时,对日期控件的处理方式

对日期控件,日期控件的输入控一般是不能手动输入的:把readonly属性去掉就好 其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了! 但是,很多此类型input框都是禁 ...

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

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

时间日期控件的处理-Selenium

很多人问时间日期的空间怎么处理,但是时间日期控件各种各样,你可能遇到正常点的像这样: 当然也可能遇到难点的,像这样: 当然,也不排除会遇到变态的,像这样: 呵呵,真要一个个想着怎么去选择,简直是非人类 ...

Selenium 日期控件处理

在WEB测试时,我们会碰到需要输入日期的情况,如果输入框能直接输入,那最好不过了.但是很多时候,输入框是不可输入的,必须的点击日期控件才行. 现在就来聊聊对日期控件的两种操作方法,我们以12306网站 ...

selenium webdriver自动化对日期控件的处理

用JS去掉日期输入框的readOnly属性. 代码如下: ----------------------------------------------------------------------- ...

随机推荐

手把手教你用python打造网易公开课视频下载软件5-python生成exe程序

python程序生成exe文件,使用的是py2exe扩展包,下面写下具体的步骤: 第一步:新建conver2exe.py,内容如下: #coding:utf-8 fromdistutils.core ...

iOS学习12之OC属性和点语法

1.属性(@property和@Synthesize) 1> 属性是 Objective-C 2.0 定义的语法,提供 setter 和 getter 方法的默认实现.在一定程度上简化代码,并且 ...

What a version number means

/questions/3768261/best-practices-guidance-for-maintaining-assembly-version- ...

第4条:多用类型常量,少用#define预处理指令

定义常量的几种方式: 1.#define ANIMATION_DURAION 0.3//定义了一个动画时长的常量, 预处理过程会把碰到的所有ANIMATION_DURAION一律替换 ...

[转]MySQL数据库的热备份

一.系统环境描述:1.两台数据库服务器,A和B:2.当前A正在使用,将作为主服务器,B为准备用来做备用数据库服务器:3.要进行热备份的数据库中含有类型为MyISAM ...

Shell 批量复制文件名相近的文件到指定文件名中

问题: 目录结构如下: test/ 2001.01.01/ 2001.02.02/2001.03.02/ 2001.01.03/ 2001.02.04/2001.03.05/ 2 ...

bzoj 2510 弱题 矩阵乘

看题就像矩阵乘 但是1000的数据无从下手 打表发现每一行的数都是一样的,只不过是错位的,好像叫什么循环矩阵 于是都可以转化为一行的,O(n3)->O(n2)*logk #include< ...

Spring Security Session并发控制原理解析

当使用spring security 的标签,如下,其中对应的SessionManagementFilter.从名字可以看出,这是一个管理S ...

在c&num;中 RemoveAt、 Remove、delete用法区别

有三种方法可以删除 DataTable 中的 DataRow: Delete 方法和 Remove 方法和 RemoveAt 方法 其区别是: Delete 方法实际上不是从 DataTable 中删 ...

LeetCode算法题-Intersection of Two Linked Lists(Java实现)

这是悦乐书的第178次更新,第180篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第37题(顺位题号是160).编写程序以找到两个单链表交叉的节点.例如: 以下两个链表: ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。