zoukankan      html  css  js  c++  java
  • python-web自动化-Js-日历操作

    日历控件是web网站上经常会遇到的一个场景,有些输入框是可以直接输入日期的,有些不能;以12306网站为例,讲解如何解决日历控件为readonly属性的问题。

    基本思路:先用js去掉readonly属性,然后直接输入日期文本内容。

    如下图:

    详细代码如下:15-21行是处理日历控件的代码

     1 from selenium import webdriver
     2 import time
     3 from selenium.webdriver.common.keys import Keys
     4 
     5 # 打开12306首页
     6 driver = webdriver.Chrome()
     7 driver.get('https://www.12306.cn/index/')
     8 time.sleep(2)
     9 # 出发地输入地点
    10 driver.find_element_by_xpath('//input[@id="fromStationText"]').click()#先点击输入框清空默认文本
    11 driver.find_element_by_xpath('//input[@id="fromStationText"]').send_keys('济南',Keys.ENTER)#输入文本回车
    12 # 到达地输入地点
    13 driver.find_element_by_xpath('//input[@id="toStationText"]').click()#先点击输入框清空默认文本
    14 driver.find_element_by_xpath('//input[@id="toStationText"]').send_keys('上海',Keys.ENTER)#输入文本回车
    15 # 处理出发时间
    16 # js去除readonly属性
    17 js = 'document.getElementById("train_date").removeAttribute("readonly")'
    18 driver.execute_script(js)
    19 # js添加时间
    20 js_value = 'document.getElementById("train_date").value="2019-02-10"'
    21 driver.execute_script(js_value)
  • 相关阅读:
    unity IOC 的使用
    Senparc之OAuth原理
    改进的日志记录类
    发一个 Nuget打包发布小工具
    贴一个微信小程序跳一跳辅助
    调用API让声卡发出声音
    控制台彩色输出
    C#调用cmd实现自我删除
    一个适合新手的简易计算器
    简单Console进度条
  • 原文地址:https://www.cnblogs.com/Aphrodite/p/10535381.html
Copyright © 2011-2022 走看看