• Java+Selenium——如何处理日历控件——方法二


    有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据。网页上日历控件一般,是一个文本输入框,鼠标点击,

    就会弹出日历界面,可以选择具体日期。这篇,就是介绍用selenium如何自动化脚本实现。

    先看一个完全模仿手工操作的场景,点击输入框,点击下一个月,再点击一个日子。

    package rjcs;
    
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.List;
    import java.util.Set;
    
    import org.openqa.selenium.interactions.Actions;
    import org.apache.commons.io.FileUtils;
    import org.openqa.selenium.TakesScreenshot;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.interactions.Actions;
    import org.openqa.selenium.By;
    import org.openqa.selenium.Keys;
    import org.openqa.selenium.WebElement;
    import org.testng.annotations.Test;
    import org.openqa.selenium.*;
    
    import java.awt.Rectangle;
    import java.awt.Robot;
    import java.awt.Toolkit;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    
    import javax.imageio.ImageIO;
    
    import org.openqa.selenium.OutputType;
    
    import com.thoughtworks.selenium.SeleneseTestNgHelper;
    
    public class ckqhh 
    {
        public static void main(String[] args)
        
        {
             System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");    //设置火狐的安装路径,防止系统找不到
                
             FirefoxDriver driver = new FirefoxDriver();        //初始化FireFox浏览器实例,并打开浏览器
             
            try
            {
                 driver.manage().window().maximize();         //最大化窗口
                 
                 Thread.sleep(3000);        
                 
                 driver.manage().window().maximize();         //最大化窗口
                 
                 Thread.sleep(3000);
    
    
    
    
                 driver.get("http://jqueryui.com/resources/demos/datepicker/default.html");  
                
                 Thread.sleep(2000);
                 
                 driver.findElement(By.id("datepicker")).click();
                 
                 Thread.sleep(8000);
                 
                 // 点击下一个月
                 driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/div/a[@data-handler='next']")).click();
                 
                 Thread.sleep(8000);
                 
                 // xpath定义第三行第五个元素,可能每个月排序不一样,所以不一定点击的就是17日
                 driver.findElement(By.xpath("//*[@id='ui-datepicker-div']/table/tbody/tr[3]/td[5]/a")).click();
    
                 
                 Thread.sleep(5000);
                 
            }catch (Exception e) 
            {
                e.printStackTrace();
            }finally 
            {
                driver.quit();
            
             }
       }
        
    
    }
  • 相关阅读:
    Android:JNI之Java和C层的相互调用及多线程的回调实现
    高通sdm845_la2.0源码编译及使用QFIL刷机
    git常用指令
    Bouml快速使用指南
    Linux内核数据结构之kfifo详解
    输入系统:进程间双向通信(socketpair+binder)
    Android : 跟我学Binder --- (6) JAVA实现
    【LeetCode】167. Two Sum II
    【LeetCode】1. Two Sum
    【LeetCode】206. Reverse Linked List
  • 原文地址:https://www.cnblogs.com/xiaobaibailongma/p/12217448.html
Copyright © 2020-2023  润新知