Selenium Webdriver——去哪儿网输入实例
2024-10-18 08:08:41
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()函数判断该图下的右上角图标是否出现,如果出现,点击取消他,然后再点击立即搜索
最新文章
- TFS 2015(Visual Studio Team Foundation Server)的下载和安装
- easyui相关script的配置
- tidyr包--数据处理包
- zepto源码--核心方法10(位置)--学习笔记
- tomcat 下虚拟机部署导致应用filter失效的问题
- [改善Java代码]Lock与synchronized是不一样的
- MVC文件上传-使用jQuery.FileUpload和Backload组件实现文件上传
- PHP_零基础学php
- FastDFS php API
- Python基本数据结构--列表
- 公司内网接口ip城市查询分析
- SimpleDateFormat 出现错误 Call requires API level 24 (current min is 15)
- day10 递归
- hdu--1029 编程之美 在数组a中 (元素个数n n是奇数)找一个数字 它出现的次数大于(n+1)/2
- [UE4]使用C++重写蓝图,SpawnObject根据类型动态创建UObject
- C#调用C++
- freemarker自己定义标签报错(二)
- c# 执行 CreateHandle() 时无法调用值 Dispose()
- css3基础下
- {Reship}{Emgu}{vs2010}C#配置Emgu
热门文章
- Creating SSL keys, CSRs, self-signed certificates, and .pem files.
- Leetcode 52
- IOS-网络(ASI使用)
- SpringMvc中@ModelAttribute注解的使用
- 硬盘安装CentOS 6.0(超级详细图文教程)
- Javascript几种创建对象的方法
- 流程设计器jQuery + svg/vml(Demo3 - 添加流程结点)
- java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind 【 解决方案】
- spring-security-4 (5)spring security Java配置实现自定义表单认证与授权
- flask第二十五篇——控制语句