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)相关推荐

  1. Python selenium对js元素进行增删改查操作

    1.首先,我们列出Selenium 对JS元素操作的4中方法: 增加属性 driver.execute_script("arguments[0].%s=arguments[1]" ...

  2. python selenium --调用js

    转自:http://www.cnblogs.com/fnng/p/3230768.html 本节重点: 调用js方法 execute_script(script, *args) 在当前窗口/框架 同步 ...

  3. python selenium 用js删除 readonly属性

    当我们想在输入框 是日期类型,并send_keys 的时候发现不能输入,要么你搞日历这个很麻烦, 还有一个方法用js,非常简单 selenium+python操作js页面,删除某个元素 例子如下:删除 ...

  4. python selenium使用JS新建标签(new tab)与切换标签

    以下是通用操作,不建议用快捷键的方式新开tab,因为js是通用的: from selenium import webdriverdriver = webdriver.Chrome() # 新建窗口 d ...

  5. Python+selenium自动化-js处理日历控件(修改readonly属性)

    前言 今天写自动化脚本的时候遇到一个需要更改日期的控件,不想费劲巴拉的去找日历的定位,但是又没办法直接输入我想输的日期时间,想了会儿之后决定用js解决日历控件 基本思路:先用js去掉readonly属 ...

  6. python selenium 等待js加载完成_一个用python完成的RSA成功模拟JS加密完成自动登录...

    编程工具启动图 自从做了产品,很久没有正二八经的写过代码了.最近这几天由于工作需要,一时心血来潮开始写python代码,最开始以为一个自动登录应该很简单,又没有手机验证和图片验证.结果一执行卡在一个加 ...

  7. 12306 抢票 python + selenium + chrome (二) 基础准备的软件和材料

    我使用的 vmware 14 + ubuntu 16  +  PyCharm  开发环境 12306抢票 python+selenium+chrome 实现一 12306抢票 python+selen ...

  8. python selenium 小知识点整理笔记(更新中...)

    1.python selenium 获取JS中返回的变量值: # 获取某节点中返回的子节点长度 clsroomNum = self.driver.execute_script("return ...

  9. Python + selenium + requests实现12306全自动买票

    Python + selenium + requests实现12306全自动买票 2020.05.03更新: 下面是新的测试结果: 2021.03.28更新:谷歌浏览器升级导致之前的隐藏方法失效,更新 ...

最新文章

  1. 调用jsapi缺少参数appid_【Python学习笔记】18、函数的参数关键字参数
  2. poj 2891 Strange Way to Express Integers 2012-09-05
  3. LeetCode03:无重复字符的最长子串
  4. Java中方法签名signature、方法重载以及“两同两小一大”的方法覆盖(方法重写)总结
  5. Web常见攻击手段总结
  6. Android之DrawText详解
  7. 计算机软件技术基础fifo算法,软件技术基础真题
  8. 云服务器选ssd还是hdd_云服务器应该怎么选择?
  9. mysql 主键自增_还再使用数据库自增主键吗?
  10. 清华霸榜,长沙理工异军突起!第三届 CCF CCSP落下帷幕
  11. 如何做数据库分页查询
  12. 基于PHP的旅游网站的设计与实现论文
  13. 基于iTextSharp(C#)创建PDF文件
  14. 一块硬盘做服务器,服务器4块硬盘做raid几
  15. 怎样选择适合自己的视频加密软件方案?
  16. 安卓打包:jks Invalid keystore format 报错解决
  17. 老年人怎么办理美国旅游签证?
  18. 微信小程序 环形进度条_微信小程序实现圆形进度条动画
  19. linux的临时挂载(mount)与永久挂载
  20. 关于DOS命令的骚操作

热门文章

  1. php 获取每年的节假日,shell获取每年农历节日的日期
  2. java仿qq空间音乐播放_完美实现仿QQ空间评论回复特效
  3. 卡方线性趋势检验_SPSS:趋势卡方检验
  4. java随机数排序算法_理解快速排序算法
  5. python 比较运算符放在列表中_在Python3中将运算符放在列表中
  6. python科学计算与图形渲染_宁哥Python科学计算与图形渲染库课程
  7. P1059 [NOIP2006 普及组] 明明的随机数
  8. Windows2008的安装
  9. 160 - 3 Afkayas.2
  10. Redis的文件事件与时间事件处理