接上一篇,我们依然以京东的网站做示例。

三,单选项

下面来做这样一条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 - 元素操作 (三)的更多相关文章

  1. Java Selenium - 元素操作 (二)

    一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键. 下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例. 一, 输入 ...

  2. Java Selenium - 元素操作 (四)

    四,弹出框 京东购物车为例 , 点击‘删除’ 或者‘移到我的关注’ ,就会弹出下面这个框框,练吧: (其实这也不是常规的弹出框,二是div css前端技术做的效果,本想做个Alert的案例,实在不好找 ...

  3. java+selenium元素定位和元素操作

    1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...

  4. selenium元素操作

    1.文本框(text field or textarea) element.sendKeys("test");//在输入框中输入内容: element.clear(); //将输入 ...

  5. selenium测试(Java)--元素操作(五)

    元素的操作有 1. 清除文本 2. 模拟按键输入 3. 单击元素 4. 返回元素尺寸 5. 获取文本 6. 获取属性值 7. 判断是否可见 8. 提交 下面通过操作新浪邮箱的注册界面的脚本来展示使用方 ...

  6. Java + selenium 元素定位(6)之iframe切换(即对富文本框的操作)

    在元素定位中,对富文本框的元素定位是特别的,当我们使用普通的元素定位方法对富文本框进行操作时,我们会发现不管我们之前介绍的八种方法中的任何方法,我们都不能成功定位到富文本框,并对其进行操作.那是因为富 ...

  7. 运用js解决java selenium元素定位问题

    一.解决定位并操作uneditable元素 尝试了通过id,xpath等等定位元素后点击都提示Element is not clickable at point 再看了下可以click的元素发现上面有 ...

  8. Java Selenium - 元素定位(一)

    一,单个元素对象定位 Webdriver通过findElement() , findElements()等方法调用By对象来定位和查询元素 , findElement()返回一个元素对象,否则抛出异常 ...

  9. Java + selenium 元素定位(5)之By Xpath

    这篇关于Xpath方法的文章和之前那篇CSS的方法一样,使用前,需要先掌握一些Xpath的相关知识.当然,网上也有各种工具可以帮助我们获取到元素的Xpath,但是这并不代表着我们就可以不用了解Xpat ...

随机推荐

  1. 带分数|2013年蓝桥杯B组题解析第九题-fishers

    带分数 100 可以表示为带分数的形式:100 = 3 + 69258 / 714 还可以表示为:100 = 82 + 3546 / 197 注意特征:带分数中,数字1~9分别出现且只出现一次(不包含 ...

  2. vins-mono源码解读

    https://blog.csdn.net/q597967420/article/details/76099409

  3. TinyMind 多标签图像分类竞赛 之路

    竞赛传送门:https://www.tinymind.cn/competitions/42 我们就是傻狗天仙配啦~ 决赛排行榜: 这次比赛感谢第一名的 baseline:https://blog.cs ...

  4. 【每日一题】 uva-232 模拟+输出要求很严格

    https://cn.vjudge.net/problem/UVA-232 uva的题,结尾不能多\n,空格什么的 反正就是个中型模拟,题目多读就行 #define _CRT_SECURE_NO_WA ...

  5. hive优化之开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...

  6. C和C指针小记(四)-浮点类型

    1.浮点型 浮点数家族包括:float,double,long double. ASCII标准规定:long double 至少和 double 一样长,而 double 至少和float 一样长.同 ...

  7. 指数级计算复杂度 调用Fibonacci函数次数

    指数级计算复杂度 计算调用次数 #include <stdio.h> long fibonacciCallTimes(long n); int main(void) { long resu ...

  8. PHP之Boolean

    Boolean布尔类型 这是最简单的类型.Boolean表达了真值,可以为true或者false. 语法 要指定一个布尔值,使用常量true或者false,两个都不区分大小写. 通常运算符所返回的Bo ...

  9. Page9:结构分解以及系统内部稳定和BIBO稳定概念及其性质[Linear System Theory]

    内容包含系统能控性结构分解.系统能观测性结构分解以及系统结构规范分解原理,线性系统的内部稳定.BIBO稳定概念及其性质

  10. Chap2:什么是shell[The Linux Command Line]

    shell - a program that takes keyboard commands and passes them to the operating system to carry out ...