python selenium处理JS只读(12306)
12306为例
js = "document.getElementById('train_date').removeAttribute('readonly');" driver.execute_script(js)time2获取当前时间 tomorrow_time 获取明天时间
from selenium import webdriver import time import datetime time1=datetime.datetime.now().strftime("%Y-%m-%d.%H%M%S.%f") time2=datetime.datetime.now().strftime("%Y-%m-%d") oneday = datetime.timedelta(days=1) tomorrow_time = datetime.datetime.now() + oneday tomorrow_time = datetime.datetime.strftime(tomorrow_time, '%Y-%m-%d')driver = webdriver.Firefox() # driver.maximize_window() driver.implicitly_wait(6) #页面不稳定 driver.get("http://www.12306.cn/mormhweb/") driver.find_element_by_xpath("html/body/div[1]/div[4]/div[3]/div[1]/ul/li[3]/a").click() time.sleep(1) driver.switch_to.window(driver.window_handles[1]) driver.find_element_by_id("fromStationText").clear() driver.find_element_by_id("fromStationText").send_keys('上海') driver.find_element_by_xpath("//div[@id='form_cities']/div[@id='panel_cities']/div[@id='citem_0']").click() time.sleep(2) driver.find_element_by_id("toStationText").clear() driver.find_element_by_id("toStationText").send_keys('九江') driver.find_element_by_xpath("//div[@id='form_cities']/div[@id='panel_cities']/div[@id='citem_0']").click() # 去除js read-only属性 js = "document.getElementById('train_date').removeAttribute('readonly');" driver.execute_script(js) # 用js方法输入日期 js_value = 'document.getElementById("train_date").value="'+time2+'"' driver.execute_script(js_value) time.sleep(1) driver.find_element_by_id("a_search_ticket").click() time.sleep(2) try:assert u'车票预订 | 客运服务 | 铁路客户服务中心'== driver.titleprint("passed") except Exception as e:print("failed") driver.quit()
转载于:https://www.cnblogs.com/yye2010/p/8651672.html
python selenium处理JS只读(12306)相关推荐
- Python selenium对js元素进行增删改查操作
1.首先,我们列出Selenium 对JS元素操作的4中方法: 增加属性 driver.execute_script("arguments[0].%s=arguments[1]" ...
- python selenium --调用js
转自:http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步 ...
- python selenium 用js删除 readonly属性
当我们想在输入框 是日期类型,并send_keys 的时候发现不能输入,要么你搞日历这个很麻烦, 还有一个方法用js,非常简单 selenium+python操作js页面,删除某个元素 例子如下:删除 ...
- python selenium使用JS新建标签(new tab)与切换标签
以下是通用操作,不建议用快捷键的方式新开tab,因为js是通用的: from selenium import webdriverdriver = webdriver.Chrome() # 新建窗口 d ...
- Python+selenium自动化-js处理日历控件(修改readonly属性)
前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...
- python selenium 等待js加载完成_一个用python完成的RSA成功模拟JS加密完成自动登录...
编程工具启动图 自从做了产品,很久没有正二八经的写过代码了.最近这几天由于工作需要,一时心血来潮开始写python代码,最开始以为一个自动登录应该很简单,又没有手机验证和图片验证.结果一执行卡在一个加 ...
- 12306 抢票 python + selenium + chrome (二) 基础准备的软件和材料
我使用的 vmware 14 + ubuntu 16 + PyCharm 开发环境 12306抢票 python+selenium+chrome 实现一 12306抢票 python+selen ...
- python selenium 小知识点整理笔记(更新中...)
1.python selenium 获取JS中返回的变量值: # 获取某节点中返回的子节点长度 clsroomNum = self.driver.execute_script("return ...
- Python + selenium + requests实现12306全自动买票
Python + selenium + requests实现12306全自动买票 2020.05.03更新: 下面是新的测试结果: 2021.03.28更新:谷歌浏览器升级导致之前的隐藏方法失效,更新 ...
最新文章
- 调用jsapi缺少参数appid_【Python学习笔记】18、函数的参数关键字参数
- poj 2891 Strange Way to Express Integers 2012-09-05
- LeetCode03:无重复字符的最长子串
- Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结
- Web常见攻击手段总结
- Android之DrawText详解
- 计算机软件技术基础fifo算法,软件技术基础真题
- 云服务器选ssd还是hdd_云服务器应该怎么选择?
- mysql 主键自增_还再使用数据库自增主键吗?
- 清华霸榜,长沙理工异军突起!第三届 CCF CCSP落下帷幕
- 如何做数据库分页查询
- 基于PHP的旅游网站的设计与实现论文
- 基于iTextSharp(C#)创建PDF文件
- 一块硬盘做服务器,服务器4块硬盘做raid几
- 怎样选择适合自己的视频加密软件方案?
- 安卓打包:jks Invalid keystore format 报错解决
- 老年人怎么办理美国旅游签证?
- 微信小程序 环形进度条_微信小程序实现圆形进度条动画
- linux的临时挂载(mount)与永久挂载
- 关于DOS命令的骚操作
热门文章
- php 获取每年的节假日,shell获取每年农历节日的日期
- java仿qq空间音乐播放_完美实现仿QQ空间评论回复特效
- 卡方线性趋势检验_SPSS:趋势卡方检验
- java随机数排序算法_理解快速排序算法
- python 比较运算符放在列表中_在Python3中将运算符放在列表中
- python科学计算与图形渲染_宁哥Python科学计算与图形渲染库课程
- P1059 [NOIP2006 普及组] 明明的随机数
- Windows2008的安装
- 160 - 3 Afkayas.2
- Redis的文件事件与时间事件处理