1.对出发地方和到达地方进行Xpath定位,这里采用了Xpath的text() 函数进行定位

用following::sibling选择当前元素后的兄弟元素,比如出发框的Xpath表达式如下:

.//*[text()= '出发']/following-sibling::input"

也可以用下面Xpath

//div[@id='js_flighttype_tab_domestic']//input[@name='fromCity']

 /**
* @author Hjianhui
* 12306 2016-08-05
*
*/
public class test{ public static void main(String[] args) { WebDriver driver = new FirefoxDriver(); try{
driver.get("http://www.qunar.com/");
driver.manage().window().maximize();
//输入出发地方
driver.findElement(By.xpath(".//*[text()= '出发']/following-sibling::input")).clear();
driver.findElement(By.xpath(".//*[text()= '出发']/following-sibling::input")).sendKeys("北京"); ////输入到达地方
driver.findElement(By.xpath(".//*[text()= '到达']/following-sibling::input")).clear();
driver.findElement(By.xpath(".//*[text()= '到达']/following-sibling::input")).sendKeys("广州"); if(isElementPresent(driver, By.xpath(".//*[@id='closeXI20']")))
driver.findElement(By.xpath(".//*[@id='closeXI20']")).click(); driver.findElement(By.id("js_domestic_fromdate")).clear();
driver.findElement(By.id("js_domestic_fromdate")).sendKeys("2016-08-20"); //点击立即搜索
driver.findElement(By.xpath(".//span[@class = 'p_btn']/button")).click(); }catch (Exception e){
e.printStackTrace();
}
driver.quit();
} public static boolean isElementPresent(WebDriver driver, By by) {
try {
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
}

由于在输入到达地方的时候,可能会有下图挡住了立即搜索,导致立即搜索不可见,因此用isElementPresent()函数判断该图下的右上角图标是否出现,如果出现,点击取消他,然后再点击立即搜索

最新文章

  1. TFS 2015(Visual Studio Team Foundation Server)的下载和安装
  2. easyui相关script的配置
  3. tidyr包--数据处理包
  4. zepto源码--核心方法10(位置)--学习笔记
  5. tomcat 下虚拟机部署导致应用filter失效的问题
  6. [改善Java代码]Lock与synchronized是不一样的
  7. MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传
  8. PHP_零基础学php
  9. FastDFS php API
  10. Python基本数据结构--列表
  11. 公司内网接口ip城市查询分析
  12. SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)
  13. day10 递归
  14. hdu--1029 编程之美 在数组a中 (元素个数n n是奇数)找一个数字 它出现的次数大于(n+1)/2
  15. [UE4]使用C++重写蓝图,SpawnObject根据类型动态创建UObject
  16. C#调用C++
  17. freemarker自己定义标签报错(二)
  18. c# 执行 CreateHandle() 时无法调用值 Dispose()
  19. css3基础下
  20. {Reship}{Emgu}{vs2010}C#配置Emgu

热门文章

  1. Creating SSL keys, CSRs, self-signed certificates, and .pem files.
  2. Leetcode 52
  3. IOS-网络(ASI使用)
  4. SpringMvc中@ModelAttribute注解的使用
  5. 硬盘安装CentOS 6.0(超级详细图文教程)
  6. Javascript几种创建对象的方法
  7. 流程设计器jQuery + svg/vml(Demo3 - 添加流程结点)
  8. java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】
  9. spring-security-4 (5)spring security Java配置实现自定义表单认证与授权
  10. flask第二十五篇——控制语句