zoukankan      html  css  js  c++  java
  • selenium自动化JS操作日期框及文本框

    JS操作编辑12306地址日期输入框

    有些日期的输入框为只读模式readonly,只能进行选择,无法进行输入,

     一、可以通过js语句来修改输入框数据

    二、通过JS来修改出发地以及到达地  先定位到,查看输入地址和没输入地址的区别,第二图可见 第一个、北京对应的就是 BJP  第二行的text 只负责页面的显示

     三、通过JS修改两处的信息,达到输入的目的  下图的 a 只是负责在页面显示城市名称,没有多大意义,实际查询是以 b  传入的 BJP 

    代码如下:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    import time
    
    # 启动谷歌浏览器
    driver = webdriver.Chrome()
    # 最大化浏览器
    driver.maximize_window()
    # 打开12306
    driver.get("https://www.12306.cn/index/")
    time.sleep(2)
    # ===========================================================================
    # 出发地
    """
    BJP:北京, SHH:上海, TJP:天津, CQW:重庆, CSQ:长沙, CCT:长春
    value="BJP"
    """
    ele = driver.find_element_by_id('fromStationText')
    region = '上海'
    abbreviation = 'SHH'
    js = f"""
    var a = document.getElementById("fromStationText")
    a.value = "{region}";
    var b = document.getElementById("fromStation")
    b.value = "{abbreviation}";
    """
    driver.execute_script(js, ele)
    
    # ===========================================================================
    # 到达地
    ele = driver.find_element_by_id('toStationText')
    region = '长春'
    abbreviation = 'CCT'
    js = f"""
    var a = document.getElementById("toStationText")
    a.value = "{region}";
    var b = document.getElementById("toStation")
    b.value = "{abbreviation}";
    """
    driver.execute_script(js, ele)
    
    
    # ===========================================================================
    # 修改时间 
    ele = driver.find_element_by_id('train_date')
    cur_time = time.strftime("%Y-%m-%d")
    js = f"""
    var a = arguments[0]
    a.readOnly = false;
    a.value = "{cur_time}";
    """
    driver.execute_script(js, ele)
    
    # ===========================================================================
    # 点击 查询
    loc = (By.XPATH, '//a[@id="search_one"]')
    WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
    driver.find_element(*loc).click()
    
    
    # 关闭所有窗口
    driver.quit()
  • 相关阅读:
    操作系统之进程篇(3)
    指针和数组及内存管理
    进程篇(3: 基本进程控制:进程的退出)--请参照本博客“操作系统”专栏
    Java面向对象程序设计--泛型编程
    进程篇(1: 进程运行环境)--请参照本博客“操作系统”专栏
    操作系统之进程篇(1)
    分类器性能指标之ROC曲线、AUC值
    如何理解似然函数?
    sigmoid函数简介
    Hive分析窗口函数
  • 原文地址:https://www.cnblogs.com/yongzhuang/p/12519260.html
Copyright © 2011-2022 走看看