Java Selenium - 元素操作 (三)
接上一篇,我们依然以京东的网站做示例。
三,单选项
下面来做这样一条case:
1. 登录京东旅行网页。
2. 在国内机票板块,购买从北京到武汉的往返机票,时间为明天出发,一周后返回。
3.搜索机票。
示例代码:
- package JD_Practice;
- import java.text.SimpleDateFormat;
- import java.util.Calendar;
- import org.openqa.selenium.By;
- import org.openqa.selenium.JavascriptExecutor;
- import org.openqa.selenium.WebDriver;
- import org.openqa.selenium.firefox.FirefoxDriver;
- public class SeleniumAction_RadioButton {
- private static WebDriver driver;
- private static String baseUrl;
- public static void main(String[] args) {
- driver=new FirefoxDriver();
- baseUrl="http://jipiao.jd.com/";
- driver.get(baseUrl);
- driver.manage().window().maximize();
- PlainTravel_RadioButton(driver);
- //driver.quit();
- }
- public static void PlainTravel_RadioButton(WebDriver dr){
- dr.findElement(By.id("depCity")).clear();
- dr.findElement(By.id("depCity")).sendKeys("±±¾©");
- dr.findElement(By.id("arrCity")).clear();
- dr.findElement(By.id("arrCity")).sendKeys("Î人");
- dr.findElement(By.id("roundFlight")).click();
- Calendar cal2= Calendar.getInstance();
- SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");
- String CurrentDate = f.format(cal2.getTime());
- String StartDate = String.valueOf((Integer.valueOf(CurrentDate)+1));
- String RoundDate = String.valueOf((Integer.valueOf(CurrentDate)+7));
- System.out.println(CurrentDate);
- System.out.println(StartDate);
- System.out.println(RoundDate);
- JavascriptExecutor js = (JavascriptExecutor)driver;
- js.executeScript("document.getElementById('depDate').readOnly=false;");
- dr.findElement(By.id("depDate")).clear();
- dr.findElement(By.id("depDate")).sendKeys(StartDate);
- js.executeScript("document.getElementById('arrDate').readOnly=false;");
- dr.findElement(By.id("arrDate")).clear();
- dr.findElement(By.id("arrDate")).sendKeys(RoundDate);
- dr.findElement(By.id("validQuery")).click();
- }
- }
运行成功后跳转到机票页面
四,多选项
练习:勾选以下所有复选框
- @Test
- public void testUntitled() throws Exception {
- driver.get(baseUrl + "/Search?keyword=Apple&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&bs=1&wq=Apple&ev=exbrand_Apple%5E&click=6");
- driver.findElement(By.xpath("//div[@id='J_feature']/ul/li[1]")).click();
- driver.findElement(By.xpath("//div[@id='J_feature']/ul/li[2]")).click();
- driver.findElement(By.xpath("//div[@id='J_feature']/ul/li[3]")).click();
- driver.findElement(By.xpath("//div[@id='J_feature']/ul/li[4]")).click();
- }
其实这个例子写的并不好,本想着用一个List ,一个Xpath就直接把这四个复选框,全部放到List里,然后挨个遍历并勾选。。。But这里面是有坑的。每次勾选一个过滤条件,页面就会刷新,接着你List的元素就会找不到 , 需要找到更好的办法去解决这个问题。
Java Selenium - 元素操作 (三)的更多相关文章
- Java Selenium - 元素操作 (二)
一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键. 下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例. 一, 输入 ...
- Java Selenium - 元素操作 (四)
四,弹出框 京东购物车为例 , 点击‘删除’ 或者‘移到我的关注’ ,就会弹出下面这个框框,练吧: (其实这也不是常规的弹出框,二是div css前端技术做的效果,本想做个Alert的案例,实在不好找 ...
- java+selenium元素定位和元素操作
1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...
- selenium元素操作
1.文本框(text field or textarea) element.sendKeys("test");//在输入框中输入内容: element.clear(); //将输入 ...
- selenium测试(Java)--元素操作(五)
元素的操作有 1. 清除文本 2. 模拟按键输入 3. 单击元素 4. 返回元素尺寸 5. 获取文本 6. 获取属性值 7. 判断是否可见 8. 提交 下面通过操作新浪邮箱的注册界面的脚本来展示使用方 ...
- Java + selenium 元素定位(6)之iframe切换(即对富文本框的操作)
在元素定位中,对富文本框的元素定位是特别的,当我们使用普通的元素定位方法对富文本框进行操作时,我们会发现不管我们之前介绍的八种方法中的任何方法,我们都不能成功定位到富文本框,并对其进行操作.那是因为富 ...
- 运用js解决java selenium元素定位问题
一.解决定位并操作uneditable元素 尝试了通过id,xpath等等定位元素后点击都提示Element is not clickable at point 再看了下可以click的元素发现上面有 ...
- Java Selenium - 元素定位(一)
一,单个元素对象定位 Webdriver通过findElement() , findElements()等方法调用By对象来定位和查询元素 , findElement()返回一个元素对象,否则抛出异常 ...
- Java + selenium 元素定位(5)之By Xpath
这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...
随机推荐
- bash 的相关配置
bash 参数自动补全 请安装 bash-completion bash 提示符 说明:参考文档 1. 简洁风格 if [[ ${EUID} == 0 ]] ; then PS1='\[\033[01 ...
- linux 部分系统命令
在网上看到一些系统命令,贴一记 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # ...
- python-and和 or用法
python中的逻辑运算 and和or执行逻辑运算,但是它们不会返回bool值,而是返回它们进行比较的值之一 and >>> 1 and 2 取2 >>>1 and ...
- python中的os
import sys, os print(__file__) # 绝对路径,实际是文件名 /Users/majianyu/Desktop/test/bin/bin.py print(os.path.a ...
- sql的sp存储过程详解
store procedure (存储过程) http://www.cnblogs.com/xiangzhong/p/5038338.html 调优的几个关键的步骤--sp_lock,sp_who h ...
- centos 断网
不知道为什么.....开启服务后就是断线 查询 ip addr 故障状态 正常状态 配置中关闭网络管理 命令:chkconfig NetworkManager off 配置中开启网络管理 命令: ch ...
- [No0000160]常用C# 正则表达式大全
正则表达式的本质是使用一系列特殊字符模式,来表示某一类字符串.正则表达式无疑是处理文本最有力的工具,而.NET提供的Regex类实现了验证正则表达式的方法.Regex 类表示不可变(只读)的正则表达式 ...
- python-----多线程、线程池、进程池
import threadingimport time ###############################多线程################################------ ...
- [Day1]常用Dos命令,Java相关描述及基础
1.常用的DOS命令 (1)返回上一级目录:cd.. (2)返回盘符根目录:cd\ (3)切换当前盘符: 盘符: (4)进入文件夹: cd 文件路径 (5)展示当前目录下的所有内容:D ...
- 【Linux】Linux 常用命令汇总
查看软件xxx安装内容:dpkg -L xxx 查找软件库中的软件:apt-cache search 正则表达式 查找软件库中的软件:aptitude search 软件包 查找文件属于哪个包:dpk ...