要求:
出发城市输入北京,到达城市输入上海,日期填写当前日期14天后,点击搜索按钮。
难点:
在实现时,遇到了两个难点,第一个是14天后怎么实现,第二个是弹出的div层会遮住搜索按钮,导致操作失败。
解决方法:
难点一:14天后怎么实现??
public static String getDateAfterDays(int days) { Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String dnow = dateFormat.format(date); System.out.println("now is:" + dnow); Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, days); date = cal.getTime(); String dAf = dateFormat.format(date); System.out.println("after is " + dAf); return dAf; }
难点二:弹出的div层会遮住搜索按钮,导致操作失败,怎么处理??
这里有两个思路:
思路一:输入框输入内容后,在空白处点击一下,div弹出框会自动消失。比如说点击空白处(0,0)
public void moveTo(int xOffset,int yOffset){ Actions action = new Actions(browser); action.moveByOffset(xOffset, yOffset).click().perform();; }
思路二:输入框输入内容后,再按一下Tab键,div弹出框也会自动消失。
input.sendKeys(Keys.TAB);
我在实现的时候又遇到了一个问题,输入北京后,立刻点击空白处或者输入Tab键,不起作用。原因是,加载div是需要时间的,马上点击空白处或输入Tab键,会起不到我们预期的结果。
解决方法是,输入北京,使用Thread.sleep(3000),再点击空白处或者输入Tab键。