元素的操作有

1. 清除文本

2. 模拟按键输入

3. 单击元素

4. 返回元素尺寸

5. 获取文本

6. 获取属性值

7. 判断是否可见

8. 提交

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

源代码:

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

执行结果

1 验证用户名信息是否存在: true  比对结果的信息是 :左箭头
2 验证图片的 hight是: 34
3 验证图片的 Width是: 118
4 验证图片的 src属性值是: https://mail.sina.com.cn/cgi-bin/createcode.php?t=1468141676
5 提交按钮的文本信息是: 立即注册
6 提交按钮的class属性值是: subIco
7 提交按钮的style属性值是: float: left;
8 提交按钮的css属性值是: left
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. OkHttp拦截器的实现原理

    今天项目中遇到需要将从push接收到的数据按照协议parse成应用层需要的结构化数据类型问题:因为push消息类型繁多,等待解析出的结构化数据类型也多样,有的还需要经过几步的parse过程:而且因为项 ...

  2. libiconv字符集转换库在C#中的使用

    <libiconv字符集转换库用法>一文中说到了libiconv能够实现不同字符集的转换. 比方GBK转BIG5等.在项目中由于须要,找到这个库.但是这个库在C#中没有非常好的支持.只是, ...

  3. 如何根据Ip获取地址信息--Java----待整理完善!!!

    如何根据Ip获取地址信息--Java----待整理完善!!! QQWry.dat数据写入方法: http://www.cnblogs.com/xumingxiang/archive/2013/02/1 ...

  4. python标准库介绍——22 UserList 模块详解

    ==UserList 模块== ``UserList`` 模块包含了一个可继承的列表类 (事实上是对内建列表类型的 Python 封装). 在 [Example 2-16 #eg-2-16] 中, / ...

  5. 用ansible 完成一次性的工作(ad-Hoc)工作

    ansible 真正强大的功能是它的playbook,但是在日常的工作中通过会遇到一些工作,它们只是需要我们偶尔操作一下:比较说重启一下 操作系统:像这样的工作就用不着ansible-playbook ...

  6. go系列之数组

    数组 数组是同一类型元素的集合.例如,整数集合 5,8,9,79,76 形成一个数组.Go 语言中不允许混合不同类型的元素,例如包含字符串和整数的数组.(译者注:当然,如果是 interface{} ...

  7. Java web中listener、 filter、servlet 加载顺序

    真正的加载顺序为:context-param -> listener -> filter -> servlet 加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 f ...

  8. 使用B::Deparse模块对perl代码反汇编

    Perl用很多默认操作和习惯用法,如果对某些代码不确定,perl编译器的真实理解方式,可以用Deparse模块反汇编看一下. 比如下面代码: while(<STDIN>){ print & ...

  9. 微信H5支付.NET版本备忘

    微信H5支付.NET版本备忘

  10. linux 打包为zip压缩包

    [root@nb linux学习]# zip -r dir.zip dir文件夹/ file文件 adding: dir文件夹/ (stored %) adding: file文件 (deflated ...