一篇概括了常用的元素定位方法,但是找到元素还是不够的,模拟鼠标的操作,完成各个功能点的自动操作才是关键。

下面是常见的页面元素操作会涉及到的方法,不是很全,比较复杂的后面单独拿出来做案例。

一, 输入框 ,按钮

登录到京东,找到主页的搜索框,这就是经典的输入框,然后点击搜索按钮,完成搜索的动作。

    public static void SeachText(WebDriver dr, String URL){
dr.get(URL);
dr.findElement(By.id("key")).clear();//clear text
dr.findElement(By.id("key")).sendKeys("test");//input your test string dr.findElement(By.className("button")).click();//click search button
}

真的能搜出京东的测试数据。。。在真实工作场景中,这个输入框的输入内容要做一条完整的case,需要考虑到很多情况,边界值,特殊字符,长度限制等等。

二,下拉选择框 ,iframe , 鼠标悬停

同样是京东首页,右边有个手机充值的下拉选择框,我们用这个做案例,看看Select的用法。

对下拉框进行操作时首先要定位到这个下拉框,new 一个Selcet对象(划重点),然后对它进行操作。

下面可以看到下拉元素的所有操作方法,可以选择指定元素(按索引,显示文本,value),可以获取下拉菜单所有选择项等等。从上图中可以看到,value是10,对应的显示文本是”10元“,现在页面默认显示“100元”,所有100对应的option是“selected”已选择状态。

本以为很简单,按照上面的id定位到下拉菜单就可以操作。。。等写代码才发现不是这样简单的,木事,工作中也一样,有坑填坑。首先,要鼠标指向“话费”悬停,然后指向“话费充值”悬停(这个地方默认是话费充值,不写也没关系,但工作中保险起见,还是写上),最后去找Select.

这个案例覆盖了多个经典元素操作:1.鼠标悬停 2.iframe 3.Select 对象 , 赚到了,有木有:)

代码示例:

    public static void Mobile_Selector(WebDriver dr, String URL){
dr.get(URL);
Actions actions =new Actions(dr);//悬停操作action
actions.moveToElement(dr.findElement(By.className("service_txt"))).perform();//悬停操作方法 dr.switchTo().frame(0);//切入到本页面第一个iframe
actions.moveToElement(dr.findElement(By.linkText("话费充值"))).perform(); dr.switchTo().frame(0);//切入子iframe,与上面的iframe存在包含关系,所以index是0.
dr.findElement(By.id("phoneNumber")).sendKeys("15012345678");//输入测试手机号,这个真实测试的时候,需要参数化 Select select = new Select(dr.findElement(By.id("select-price-money")));//选择充费钱数 int length = select.getOptions().size();
System.out.println(length); select.selectByIndex(length-1);//下拉菜单索引从0开始 select.selectByIndex(3);
//select.selectByValue("10");
//select.selectByVisibleText("20元"); dr.findElement(By.className("btn-submit")).click();//点击快速充值
}

运行成功后:

 

Java Selenium - 元素操作 (二)的更多相关文章

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

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

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

    接上一篇,我们依然以京东的网站做示例. 三,单选项 下面来做这样一条case: 1. 登录京东旅行网页. 2. 在国内机票板块,购买从北京到武汉的往返机票,时间为明天出发,一周后返回. 3.搜索机票. ...

  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. fclose函数无响应

    现象:win32程序在退出时无响应,当一步步跟踪代码时走到fclose. 原因:打开文件在一个线程中,写文件时在另一个线程,在open和write文件时均正常,只有在fclose时出现无响应. 解决: ...

  2. 180714、JRebel插件安装配置与破解激活(多方案)详细教程

    JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...

  3. 使用 AJAX + 三级联动 实现分类出全国各地的省,市,区

    使用AJAX + 三级联动  实现分类出全国各地的省,市,区 也可以将下面的显示页面所写的 function循环,封装成js文件,就是在写代码软件里创建一个js文件,就和创建一个HTML或php文件一 ...

  4. C语言复制图片文件

    以下代码将文件一的图片复制到文件二中 #include<stdio.h> #include<stdlib.h> int main() { char ch; char fname ...

  5. POJ-1143(状态压缩)

    Number Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3432 Accepted: 1399 Descripti ...

  6. .NET Core开发日志——HttpClientFactory

    当需要向某特定URL地址发送HTTP请求并得到相应响应时,通常会用到HttpClient类.该类包含了众多有用的方法,可以满足绝大多数的需求.但是如果对其使用不当时,可能会出现意想不到的事情. 博客园 ...

  7. [No0000B1]ReSharper操作指南2/16-ReSharper食谱与特定于域的教程

    自动导入名称空间 有关更多信息,请参阅导入缺少命名空间. 每当您使用未添加using语句的命名空间中的类型时,ReSharper会为您提供在您所在文件的顶部添加相应的语句.这由在所使用的类型上方显示的 ...

  8. 【libreOJ模板】并查集(输入挂,取模与find优化)

    1.了解了各种输入挂性orz,找到了一个合适的 2.find用while写能快一倍,并且能被数据卡掉 3.取模只能快十几毫秒,但也能被数据卡掉 取模find双优化是1997mm过的 再加一个性价比较高 ...

  9. dos基本指令

    目录操作 dir  操作磁盘文件目录 md / mkdir <folder name> 创建子目录make directory cd  改变当前工作目录,返回上一级 cd .. rd  删 ...

  10. 创建结点 与 分配内存 Function to create a Node. Allocates memory for a new node. 主动申请内存 链表 指针的写法

    Self Referential Data Structure in C - create a singly linked list http://www.how2lab.com/programmin ...