selenium对复杂日期控件处理

  日期操作也是自动化测试中必不可少的一环,有些日期控件操作简单直接用send_key便可,而一些复杂的需借助外力,请看以下示例:

  • 需求1:对去哪儿火车页面日期操作
  • 特点:手动可以直接输值

  •  代码实现
    #大牛测试:轻轻松松自动化
    #QQ:2574674466
    #专注自动化测试技术
    #coding=utf-8
    import time
    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('https://train.qunar.com/')
    driver.maximize_window()
    driver.find_element_by_name("fromStation").send_keys("上海")
    driver.find_element_by_name("date").clear()
    driver.find_element_by_name("date").send_keys("2021-05-03")
  • 需求2:对携程火车票日期操作
  • 特点:无法直接赋值

     查看页面元素,有“readonly"属性,所以先要把该属性去掉,再进行赋值:

     故需用js移除属性

    document.getElementById('dateObj').removeAttribute('readonly')

    完整代码如下:

    
    
    #大牛测试:轻轻松松自动化
    #QQ:2574674466
    #专注自动化测试技术
    # _*_ coding:utf-8 _*_
    from selenium import  webdriver
    
    import  time
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get("http://trains.ctrip.com/TrainBooking/SearchTrain.aspx###")
    driver.execute_script(“document.getElementById('dateObj').removeAttribute('readonly')”)
    driver.execute_script("document.getElementById('dateObj').value='2021-11-01'") 
  • 视频、学习笔记联系qq:2574674466
  • 更多内容请关注公众号:“大牛测试”

     

欢迎加入交流群:Selenium学习群: 628908894
原文地址:https://www.cnblogs.com/tim2016/p/15385097.html