• 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)
  • 相关阅读:
    指令周期与机器周期
    MFC使用Access数据库
    函数指针的用途
    大端模式和小端模式
    Matlab信号展开
    EL表达式的11个内置对象
    JSP 4个域对象、7个动作指令、9个内置对象
    阿里巴巴java代码规范
    HDDATA基本注意事项
    SVN相关
  • 原文地址:https://www.cnblogs.com/Aphrodite/p/10535381.html
Copyright © 2020-2023  润新知