元素(WebElement)-----Selenium快速入门(三)
上一篇《元素定位-----Selenium快速入门(二)》说了,如何定位元素,本篇说说找到的元素(WebElement)该怎么用。
WebElement常用方法:
| 返回值 | 方法名 | 说明 |
| void | clear() | 如果找到的元素是input 或 textarea,则清除它的值。其他元素不受影响。 |
| void | click() |
点击一个元素,元素必须可见,并且宽高都必须大于0。如果这个点击操作导致页面刷新的话, 必须要抛弃这个元素的所有引用,并且对这个元素的进一步操作, |
| 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快速入门(三)的更多相关文章
- 元素定位-----Selenium快速入门(二)
一.eclipse设置 工欲善其事必先利其器,在说元素定位之前,先来设置下eclipse. 首先放大一下字体,点击windows-preferences 其次,eclipse对于java的智能提示默认 ...
- 隐式等待-----Selenium快速入门(九)
有时候,网页未加载完成,或加载失败,但是我们后续的代码就已经开始查找页面上的元素了,这通常将导致查找元素失败.在本系列Selenium窗口切换-----Selenium快速入门(六)中,我们就已经出现 ...
- Selenium下拉菜单(Select)的操作-----Selenium快速入门(五)
对于一般元素的操作,我们只要掌握本系列的第二,三章即可大致足够.对于下拉菜单(Select)的操作,Selenium有专门的类Select进行处理.文档地址为:http://seleniumhq.gi ...
- 显式等待-----Selenium快速入门(十)
上一篇说了元素定位过程中的隐式等待,今天我们来探讨一下显示等待.显式等待,其实就是在使用WebDriverWait这个对象,进行等待.显式等待对比隐式等待,多了一些人性化的设置,可以说是更细化的隐式等 ...
- Appium自动化(9) - appium元素定位的快速入门
如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 快速入门栗子:boss直聘 app ...
- Selenium框架切换-----Selenium快速入门(七)
上一篇说了窗口的切换,本篇说说框架的切换. 切换框架:是指切换html中的iframe标签元素或者frame标签元素,注意,并不包括frameset 以下是常用的方法: 方法 说明 WebDriver ...
- Selenium简介与环境搭配-----Selenium快速入门(一)
Selenium是一套自动化测试框架.官方网站是:https://www.seleniumhq.org/ 某些童鞋访问可能需要FQ. Selenium支持多种语言开发,例如Java,Python,C ...
- 终结篇:RemoteWebDriver与Grid简介-----Selenium快速入门(十五)
Selenium的基本使用,已经介绍得差不多了,今天来简单说说RemoteWebDriver与Grid,也是本系列的最后一篇. 还记得本系列第一章(Selenium简介与环境搭配)的配置中,提到我们下 ...
- Selenium窗口切换-----Selenium快速入门(六)
有时候,我们打开多个窗口,进行多窗口操作,那么窗口间该如何切换呢? 切换的方法有两个,一个是通过窗口标题来验证,另一个是通过窗口特定的内容来验证,这两个方法都要求得到的标题或内容是唯一的. 用到的相关 ...
随机推荐
- 分享一下自己写的一个vscode-leetcode答题插件
0. 前言 春节这几天每天吃吃喝喝睡睡玩玩,突然发现明天就要上班了,吓得我虎躯一震. 春节结束之后,学生党们陆续开学,相信有许多同学马上就要在春季招聘中拼杀一番.想要收获心意的offer,当然免不了对 ...
- php+redis 学习 三 乐观锁
<?php header('content-type:text/html;chaeset=utf-8'); /** * redis实战 * * 实现乐观锁机制 * * @example php ...
- nginx+tomcat单个域名及多个域名配置
同步首发:http://www.yuanrengu.com/index.php/20171130.html 项目开发接近尾声,开始着手在生产环境部署项目,开发阶段部署项目都没用nginx.项目是采用S ...
- 学习python3函数笔记
Python内置了很多有用的函数,我们可以直接调用. 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以直接从Python的官方网站查看文档: http://doc ...
- ElasticSearch和solr的差别
Elasticsearch简介 Elasticsearch是一个实时分布式搜索和分析引擎.它让你以前所未有的速度处理大数据成为可能.它用于全文搜索.结构化搜索.分析以及将这三者混合使用:维基百科使用E ...
- 在mac上安装Docker
1.进入一下地址进行下载docker https://download.docker.com/mac/stable/Docker.dmg 进入后进行下载后进行安装 2.将其拖动到Appliaction ...
- alter 和 update的区别?
alter用来增加或者减少列,alter stuednt add name vachar2(30): update用来更改表中的数据:update student set sutudent.name ...
- ASP.NET没有魔法——ASP.NET MVC 模型绑定解析(上篇)
前面文章介绍了ASP.NET MVC中的模型绑定和验证功能,本着ASP.NET MVC没有魔法的精神,本章内容将从代码的角度对ASP.NET MVC如何完成模型的绑定和验证进行分析,已了解其原理. 本 ...
- uva1471 二叉搜索树
此题紫书上面有详细分析,关键是运用Set优化实现O(nlgn)复杂度 AC代码: #include<cstdio> #include<set> #include<algo ...
- 关于MYCAT 读写分离,与只读事务的问题.
习惯性为了复用mysql连接,喜欢加上@Transactional(readOnly = true) 只读事务,很多零碎的查询下,速度会快一些,也环保一些. 最近用mycat做了读写分离,其中一个查询 ...