上一篇《元素定位-----Selenium快速入门(二)》说了,如何定位元素,本篇说说找到的元素(WebElement)该怎么用。

WebElement常用方法:

 返回值  方法名  说明
 void  clear() 如果找到的元素是input 或  textarea,则清除它的值。其他元素不受影响。 
 void   click()

点击一个元素,元素必须可见,并且宽高都必须大于0。如果这个点击操作导致页面刷新的话,

必须要抛弃这个元素的所有引用,并且对这个元素的进一步操作,

都会引发StaleElementReferenceException

 String  getAttribute(String name)  通过属性名,获得属性值。例如,我想获得value的值,可以调用getAttribute("value")
 String  getCssValue(String propertyName) 通过属性名,获得Css属性值,例如getCSSValue("height")
 String  getTagName() 获得该元素的标签名,例如input,p等
 String  getText()

获取页面上可见的文字(没有被css隐藏),包括子元素,获得的文本去除任何前导或后置的空格。

例如,html源码是<p id="test">    aaaaa <br/>bbbbb<br/><a href="#">   cccccc    </a></p>

如果我们得到的WebElement ele=driver.findElement(By.id("test")),那么ele.getText()实际输出

aaaaa

bbbbb

cccccc

 boolean  isDisplayed() 判断该元素是否可见。
 boolean  isEnabled() 判断元素是否可用。
 boolean  isSelected() 判断元素是否被选中,只用于单选或者多选按钮(radio button,check box)
 void  sendKeys(CharSequence... keys) 模拟输入字符
 void   submit()

如果当前元素是一个form或者是在form内的一个元素,则会提交表单。

否则,引发NoSuchElementException

下面用一个自动注册的例子,来说明上面一些方法的使用。

我们注册的地址是:http://www.eshimin.com/pages/account/register/regIndex.jsp

之所以选择这个,是因为它不需要验证码,而且虽然分成三步注册,实际填好第一个注册界面,点击注册,即可注册成功,后面不需要绑定手机什么的。

首先,我们用chrome的F12调试工具,获得页面中元素的各ID。

需要注意的是,当“我已阅读并同意”未选中时,“注册”是不可用的,因此,我们先选中同意,然后输入其他文本框,为什么要先选中?大家自己思考一下。

下面是详细的代码,都有详尽的解释。

 System.setProperty("webdriver.chrome.driver", "D:/WorkSpace/SeleniumTest/tools/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("http://www.eshimin.com/pages/account/register/regIndex.jsp"); //定位各种需要填写的元素
WebElement userName=driver.findElement(By.id("userNameInput"));
WebElement pwd=driver.findElement(By.id("passwordInput"));
WebElement rePwd=driver.findElement(By.id("rePasswordInput"));
WebElement chkAgree=driver.findElement(By.id("secret"));
WebElement button=driver.findElement(By.id("nextStep")); //首先判断check box是否被选中,如果没有被选中,则选中
if(!chkAgree.isSelected())
chkAgree.click();
//在用户名文本框输入用户名
userName.sendKeys("csdfsss0002");
//输入密码
pwd.sendKeys("abc123");
//重复密码
rePwd.sendKeys("abc123");
//提交表单
button.submit();

如果输入的账号密码成功,提交表单,会跳转到下一步,实际上是已经注册成功。

到这里,大家应该意识到什么了,此处只是用来演示selenium 中WebElement的用法,千万别做坏事。

元素(WebElement)-----Selenium快速入门(三)的更多相关文章

  1. 元素定位-----Selenium快速入门(二)

    一.eclipse设置 工欲善其事必先利其器,在说元素定位之前,先来设置下eclipse. 首先放大一下字体,点击windows-preferences 其次,eclipse对于java的智能提示默认 ...

  2. 隐式等待-----Selenium快速入门(九)

    有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败.在本系列Selenium窗口切换-----Selenium快速入门(六)中,我们就已经出现 ...

  3. Selenium下拉菜单(Select)的操作-----Selenium快速入门(五)

    对于一般元素的操作,我们只要掌握本系列的第二,三章即可大致足够.对于下拉菜单(Select)的操作,Selenium有专门的类Select进行处理.文档地址为:http://seleniumhq.gi ...

  4. 显式等待-----Selenium快速入门(十)

    上一篇说了元素定位过程中的隐式等待,今天我们来探讨一下显示等待.显式等待,其实就是在使用WebDriverWait这个对象,进行等待.显式等待对比隐式等待,多了一些人性化的设置,可以说是更细化的隐式等 ...

  5. Appium自动化(9) - appium元素定位的快速入门

    如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 快速入门栗子:boss直聘 app ...

  6. Selenium框架切换-----Selenium快速入门(七)

    上一篇说了窗口的切换,本篇说说框架的切换. 切换框架:是指切换html中的iframe标签元素或者frame标签元素,注意,并不包括frameset 以下是常用的方法: 方法 说明 WebDriver ...

  7. Selenium简介与环境搭配-----Selenium快速入门(一)

    Selenium是一套自动化测试框架.官方网站是:https://www.seleniumhq.org/  某些童鞋访问可能需要FQ. Selenium支持多种语言开发,例如Java,Python,C ...

  8. 终结篇:RemoteWebDriver与Grid简介-----Selenium快速入门(十五)

    Selenium的基本使用,已经介绍得差不多了,今天来简单说说RemoteWebDriver与Grid,也是本系列的最后一篇. 还记得本系列第一章(Selenium简介与环境搭配)的配置中,提到我们下 ...

  9. Selenium窗口切换-----Selenium快速入门(六)

    有时候,我们打开多个窗口,进行多窗口操作,那么窗口间该如何切换呢? 切换的方法有两个,一个是通过窗口标题来验证,另一个是通过窗口特定的内容来验证,这两个方法都要求得到的标题或内容是唯一的. 用到的相关 ...

随机推荐

  1. UITableView!别再用代码计算行高了(一)

    你还在用代码去计算行高吗?你不感觉那种方式很low吗?从今天起,试着做些改变吧! 别给我讲你喜欢写代码的感觉,你就是要用代码去计算行高,那我这篇文章不适合你. 在讲解复杂内容之前,还是先学习简单的内容 ...

  2. php get_called_class()函数与get_class()函数的区别

    get_class (): 获取当前调用方法的类名: get_called_class():获取静态绑定后的类名: class Foo{ public function test(){ var_dum ...

  3. 日均数据量千万级,MySQL、TiDB两种存储方案的落地对比

    http://mp.weixin.qq.com/s?__biz=MzIzNjUxMzk2NQ==&mid=2247484743&idx=1&sn=04337e020d268a9 ...

  4. Git hook实现自动部署

    Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 ...

  5. Apollo阿波罗配置中心docker

    前言 在分布式系统中,要改个配置涉及到很多个系统,一个一个改效率低下,吃力不讨好.用配置中心可以解决这个问题.当然配置中心有不少,以下对比的表格是照搬Apollo Wiki的. 功能点 Apollo ...

  6. 相对路径和绝对路径的问题"/"带不带斜杠

    带有"/"是绝对路径,为项目的上下文目录是从工程开始的路径 不带的话是一个相对路径,相对于执行该代码的目录文件结构

  7. 重绘(redraw或repaint),重排(reflow)

    浏览器运行机制图: 浏览器的运行机制:layout:布局: 1.构建DOM树(parse):渲染引擎解析HTML文档,首先将标签转换成DOM树中的DOM node(包括js生成的标签)生成内容树(Co ...

  8. Windows API Finishing

    input { font-size: 14px; height: 26px } td { border-style: none; border-color: inherit; border-width ...

  9. Docker容器技术

    Docker介绍 什么是容器 Linux容器是与系统其他部分隔离开的一系列进程,从另一个系统镜像运行,并由该镜像提供支持进程所需的全部文件. 容器镜像包含了应用的所有依赖项,因而在从开发到测试再到生产 ...

  10. Jenkins系列——使用checkstyle进行代码规范检查

    1.目标 通过jenkins使用checkstyle对代码进行规范检查并生成html报告. 构建采用shell. 2.环境 checkstyle5.7(如果是Linux版本选用tar.gz格式) ap ...