元素的操作有

1. 清除文本

2. 模拟按键输入

3. 单击元素

4. 返回元素尺寸

5. 获取文本

6. 获取属性值

7. 判断是否可见

8. 提交

下面通过操作新浪邮箱的注册界面的脚本来展示使用方法

源代码:

  1. 1 package com.test.elementoperation;
  2. 2
  3. 3 import org.openqa.selenium.By;
  4. 4 import org.openqa.selenium.WebDriver;
  5. 5 import org.openqa.selenium.WebElement;
  6. 6 import org.openqa.selenium.firefox.FirefoxDriver;
  7. 7
  8. 8 public class ElementOperationEmail {
  9. 9
  10. 10 public static void main(String[] args) {
  11. 11
  12. 12 WebDriver driver = new FirefoxDriver();
  13. 13
  14. 14 driver.get("https://mail.sina.com.cn/register/regmail.php");
  15. 15 driver.manage().window().maximize();
  16. 16
  17. 17 // 获取email名称输入框节点,并输入名称
  18. 18 WebElement emailName = driver.findElement(By.cssSelector("[name=email]"));
  19. 19 emailName.clear();
  20. 20 emailName.click();
  21. 21 emailName.sendKeys(AllInfo.emailName);
  22. 22
  23. 23 // 获取email密码输入框节点,在输入密码之前,先验证一下email名称时候可用,如果可用就继续,如果不可用就退出浏览器
  24. 24 WebElement emailPassword = driver.findElement(By.cssSelector("[name=psw]"));
  25. 25 emailPassword.click();// 点击一下密码框,使得email名称验证信息出现
  26. 26 waitTime(3000);
  27. 27 // 获取email名称验证信息节点,并判断信息是否为"左箭头"
  28. 28 WebElement checkName = driver
  29. 29 .findElement(By.xpath("html/body/div[2]/div/div/div/div/form[1]/div[2]/ul/li[1]/div[3]/i"));
  30. 30 String checkContent = checkName.getText();// 通过getText方法来获取节点文本信息
  31. 31 System.out.println("验证用户名信息是否存在: " + checkName.isDisplayed() + " 比对结果的信息是 :" + checkContent);
  32. 32 // 获取到信息后开始判断,并进行不同的分支
  33. 33 if ("左箭头".equals(checkContent)) {
  34. 34 // 确认名称无误后输入密码
  35. 35 emailPassword.sendKeys(AllInfo.emailPassword);
  36. 36 waitTime(3000);
  37. 37
  38. 38 // 获取验证码输入框节点,在输入验证码之前,先验证一下密码是否有效和密码强度
  39. 39 WebElement emailImgvcode = driver.findElement(By.cssSelector("[name=imgvcode]"));
  40. 40 emailImgvcode.click();
  41. 41 waitTime(3000);
  42. 42 // 获取密码校验信息节点,并判断时候存在以及信息是否为"密码强度:高"
  43. 43 WebElement checkPassword = driver.findElement(By.cssSelector("[class=passWord3]"));
  44. 44 if (checkPassword.isDisplayed() && "密码强度:高".equals(checkPassword.getText())) {
  45. 45
  46. 46 // 密码校验通过后,获取验证验证图片节点,并通过一下方法来获取该节点的信息
  47. 47 WebElement img = driver.findElement(By.cssSelector("[id=capcha]"));
  48. 48 System.out.println("验证图片的 hight是: " + img.getSize().getHeight());
  49. 49 System.out.println("验证图片的 Width是: " + img.getSize().getWidth());
  50. 50 System.out.println("验证图片的 src属性值是: " + img.getAttribute("src"));
  51. 51 waitTime(3000);
  52. 52
  53. 53 // 输入验证码,真实环境中selenium很难获取到正确的验证码,如果在测试环境可以通过访问Cookie的方式实现。
  54. 54 // 这里随意输入一个验证码
  55. 55 emailImgvcode.sendKeys("1234567890");
  56. 56 waitTime(3000);
  57. 57
  58. 58 // 获取提交按钮信息,并通过一些方法来获取该节点的信息
  59. 59 WebElement submit = driver.findElement(By.cssSelector("[class=subIco]"));
  60. 60 System.out.println("提交按钮的文本信息是: " + submit.getText());
  61. 61 System.out.println("提交按钮的class属性值是: " + submit.getAttribute("class"));
  62. 62 System.out.println("提交按钮的style属性值是: " + submit.getAttribute("style"));
  63. 63 System.out.println("提交按钮的css属性值是: " + submit.getCssValue("float"));
  64. 64 System.out.println("提交按钮的href属性值是: " + submit.getAttribute("href"));
  65. 65 submit.submit();
  66. 66 waitTime(5000);
  67. 67
  68. 68 driver.quit();
  69. 69
  70. 70 } else {
  71. 71 System.out.println("密码校验信息没有展示或者密码强度低");
  72. 72 driver.quit();
  73. 73 }
  74. 74
  75. 75 } else {
  76. 76 System.out.println("用户名不可用");
  77. 77 driver.quit();
  78. 78 }
  79. 79
  80. 80 }
  81. 81
  82. 82 static public void waitTime(int time) {
  83. 83
  84. 84 try {
  85. 85 Thread.sleep(time);
  86. 86 } catch (InterruptedException e) {
  87. 87 // TODO Auto-generated catch block
  88. 88 e.printStackTrace();
  89. 89 }
  90. 90 }
  91. 91 }

执行结果

  1. 1 验证用户名信息是否存在: true 比对结果的信息是 :左箭头
  2. 2 验证图片的 hight是: 34
  3. 3 验证图片的 Width是: 118
  4. 4 验证图片的 src属性值是: https://mail.sina.com.cn/cgi-bin/createcode.php?t=1468141676
  5. 5 提交按钮的文本信息是: 立即注册
  6. 6 提交按钮的class属性值是: subIco
  7. 7 提交按钮的style属性值是: float: left;
  8. 8 提交按钮的css属性值是: left
  9. 9 提交按钮的href属性值是: javascript:void(0)

下面是页面与利用firebug查看到的信息截图

selenium测试(Java)--元素操作(五)的更多相关文章

  1. Selenium webdriver Java 元素操作

    本来这些东西网上一搜一大堆,但是本着收集的精神,整理一份放着吧!哈!哈!哈! 1. 输入框(text field or textarea) WebElement element = driver.fi ...

  2. selenium中的元素操作之下拉列表操作(四)

    下拉列表操作中分为两种:select.非select 1.非select的下拉框操作 非select下拉列表操作与网页元素操作一致,找到元素,定位元素,设置等待,点击元素等等 接下来操作百度的设置按钮 ...

  3. [selenium webdriver Java]元素定位——findElement/findElements

    策略 语法 语法 描述 By id driver.findElement(By.id()) driver.findElements(By.id()) 通过id属性定位元素 By name driver ...

  4. selenium webdriver python 元素操作

    常用操作 click 点击某个元素 driver.find_element_by_id(“su”).click()   clear driver.find_element_by_id(“kw”).cl ...

  5. selenium中的元素操作之三大切换(二)

    一.窗口切换 使用方法: 1.获取到打开的所有的窗口,句柄handles all_handles = driver.window_handles print(all_handles) 2.获取当前的窗 ...

  6. selenium中的元素操作之三大等待(一)

    等待时做什么,为什么使用等待 在做自动化测试,设计测试用例的时候,有时下一步的操作会依赖上一步的结果或者内容,上一步操作成功之后才能进行下一步操作等,这时候,我们就需要使用等待,来判断上一步操作是否完 ...

  7. <自动化测试>之<selenium API 查找元素操作底层方法>

    搜罗了一些查找元素的除标准语句外,另外的语句使用方法,摘自 开源中国 郝云鹏driver = webdriver.Chrome(); 打开测试页面 driver.get( "http://b ...

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

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

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

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

  10. selenium中元素操作之浏览器窗口滚动&网页日期控件操作(js操作)(五)

    js的滚动条scrollIntoView() Arguments[] - python与js之间的羁绊 1.移动到元素element对象的“底端”,与当前窗口的“底部”对齐: driver.execu ...

随机推荐

  1. Linux中断 - ARM中断处理过程

    一.前言 本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作.具体整个处理过程分成三个步骤来描述: 1.第二章描述了中断处理的准备过程 2.第三章描述了当发生中的时候 ...

  2. HR面 - 十大经典提问

    1.HR:你希望通过这份工作获得什么? 1).自杀式回答:我希望自己为之工作的企业能够重视质量,而且会给做得好的员工予以奖励.我希望通过这份工作锻炼自己,提升自己的能力,能让公司更加重视我. a.“我 ...

  3. STM32 usb_mem.c和usb_sil.c文件的分析

    转:http://blog.csdn.net/u011318735/article/details/17424515 这两个c文件都还算是很简单的,先讲讲usb_mem.c这个文件.从文件名就能知道跟 ...

  4. 页面日期选择控件--jquery ui datepicker 插件

    日期选择插件Datepicker是一个配置灵活的插件,我们可以自定义其展示方式,包括日期格式.语言.限制选择日期范围.添加相关按钮以及其它导航等.官方地址:http://docs.jquery.com ...

  5. 有限狀態機FSM coding style整理 (SOC) (Verilog)

    AbstractFSM在數位電路中非常重要,藉由FSM,可以讓數位電路也能循序地執行起演算法.本文將詳細討論各種FSM coding style的優缺點,並歸納出推薦的coding style. In ...

  6. mysqldump 备份单个数据库

    mysqldump -uemove -h xx.xxx.xx.xx -P7996 -p --databases dbname >dbname.sql

  7. <实战> 通过分析Heap Dump 来了解 Memory Leak ,Retained Heap,Shallow Heap

    引入: 最近在和别的团队的技术人员聊天,发现很多人对于堆的基本知识都不太熟悉,所以他们不能很好的检测出memory leak问题,这里就用一个专题来讲解如何通过分析heap dump文件来查找memo ...

  8. python 列表排序方法reverse、sort、sorted基础篇

    python语言中的列表排序方法有三个:reverse反转/倒序排序.sort正序排序.sorted可以获取排序后的列表.在更高级列表排序中,后两中方法还可以加入条件参数进行排序. reverse() ...

  9. iOS查看一个软件ipa包的全部内容

    iOS查看一个软件ipa包的全部内容 一,打开itunes----->我的iPhone应用程序. 二,右键点击app---->在Finder中显示---->出现下图所示界面. 三,将 ...

  10. gulp的使用 文档

    #gulp ##1 什么是gulp.为什么使用gulp Gulp是一个**构建系统**,它能通过自动执行常见任务,比如编译预处理CSS,压缩JavaScript,来改进网站开发的过程. 将less文件 ...