有些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();}}}