Selenium Webdriver——去哪儿网输入实例
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()函数判断该图下的右上角图标是否出现,如果出现,点击取消他,然后再点击立即搜索

Selenium Webdriver——去哪儿网输入实例的更多相关文章
- 去哪儿网输入框三种输入方式(selenium webdriver 干货)
在机票预定的页面,输入出发城市和到达城市输入框的时候, 发现直接使用sendkeys不好使, 大部分情况出现输入某城市后没有输入进去, 经过几天的研究,发现可以采取三种方式: 1. 先点击输入框,待弹 ...
- 输入框三种输入方式(selenium webdriver 干货)
在机票预定的页面,输入出发城市和到达城市输入框的时候, 发现直接使用sendkeys不好使, 大部分情况出现输入某城市后没有输入进去, 经过几天的研究,发现可以采取三种方式: 1. 先点击输入框,待弹 ...
- Selenium WebDriver TestNg Maven Eclipse java 简单实例
环境准备 前提条件Eclipse 已经安装过 TestNg ,Maven 插件 新建一个普通的java项目 点击右键 configure->convert to Maven Project 之后 ...
- selenium webdriver启动Chrome浏览器后无法输入网址的解决办法
通过selenium webdriver启动Chrome浏览器,脚本如下: from selenium import webdriver browser = webdriver.Chrome() br ...
- Selenium WebDriver java 简单实例
开发环境 JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/index.html Eclipse: 下载地址:http ...
- selenium webdriver——JS对Input执行输入
直接设置value属性, 此方法主要应对输入框自动补全以及readonly属性的element,sendkeys不稳定 比如: Demo:用JS输入 import org.openqa.seleniu ...
- (java)selenium webdriver学习--通过id、name定位,输入内容,搜索,关闭操作、通过tagname查找元素
selenium webdriver学习--通过id.name定位,输入内容,搜索,关闭操作:通过tagname查找元素 打开谷歌浏览器,输入不同的网站,搜索框的定位含有不同元素(有时为id,有时为n ...
- 一个selenium笔试题——去哪网首页获取符合要求的url并保存
今天在群里看到这样一个笔试题:请使用任何熟悉的面向对象编程语言,编写代码,获取http://www.qyer.com页面中,所有</a>标签"href"属性值包含英文单 ...
- selenium webdriver (python)的基本用法一
阅在线 AIP 文档:http://selenium.googlecode.com/git/docs/api/py/index.html目录一.selenium+python 环境搭建........ ...
随机推荐
- php--------网页开发实现微信JS的(定位,地图显示,照片选择功能)
今天说说微信网页开发中一下JS的功能,分享一下,希望对各位有所帮助. 前提:要有公众号,和通过微信认证,绑定域名,得到相应信息,appid,appsecret等. 微信开发文档:https://mp. ...
- 解决mysql安装报错:无法启动此程序,因为计算机丢失MSVCP120.dll
问题一: 因为装的是新系统,所以遇到mysql启动报错:无法启动此程序,因为计算机丢失MSVCP120.dll 后来参考这篇文章https://blog.csdn.net/huacode/articl ...
- sgu 137. Funny Strings 线性同余,数论,构造 难度:3
137. Funny Strings time limit per test: 0.25 sec. memory limit per test: 4096 KB Let's consider a st ...
- java应用简单递归
毕业后就怎么学过算法,还在上学的时候学过数据结构,现在基本上都还给老师了,可惜老师学费没有还给我... 情景: 类似于给定一个数字,算他由多少个数字组成,比如:36 现在有10.5.1 ,那么最佳帅3 ...
- ubuntu16.04下安装opencv3.3
最近重装了ubuntu16.04的系统,在给电脑配置好cuda8.0和cudnn6.0的版本后,开始重新安装opencv,在opencv的官网上发现最新版本3.3版本增加了很多深度学习方面的东西,果断 ...
- springboot项目配置拦截器,进行登陆等拦截
新建拦截类: public class LoginInterceptor implements HandlerInterceptor{ private static Log logger = LogF ...
- LG2052 [NOI2011]道路修建
题意 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1 条双向道路. 每条道路的 ...
- ES6必知必会 (七)—— Generator 函数
Generator 函数 1.Generator 函数是 ES6 提供的一种异步编程解决方案,语法行为与传统函数完全不同,通常有两个特征: function关键字与函数名之间有一个星号: 函数体内部使 ...
- Reusing & Composing GraphQL APIs with GraphQL Bindings
With GraphQL bindings you can embed existing GraphQL APIs into your GraphQL server. In previous blog ...
- 浅谈ASP.NET ---- 系列文章
[01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作篇)(下) [04]浅谈ASP. ...