元素(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快速入门(六)
有时候,我们打开多个窗口,进行多窗口操作,那么窗口间该如何切换呢? 切换的方法有两个,一个是通过窗口标题来验证,另一个是通过窗口特定的内容来验证,这两个方法都要求得到的标题或内容是唯一的. 用到的相关 ...
随机推荐
- Selenium_WebDriver_多窗口切换
摘要: 版权声明:本文为博主原创文章,转载请注明出处. 在页面操作过程中有时候点击某个链接会弹出新的窗口,这时我们如果需要操作新打开的页面,就需要将主机切换到新打开的窗口上再进行操作,比如博客园精华页 ...
- hibernate连接MySQL配置hibernate.cfg.xml
今天刚学完hibernate所以急着做一个hibernate的项目,有不足的请帮我改正一下.谢谢大家 <hibernate-configuration> <session-facto ...
- thinkPHP数据库操作
thinkPHP如果要对数据库操作,一般来说首先要做的是在配置文件中链接数据库,然后用M方法实例化一张表,然后就是对表的操作了 可以开启调试功能查看程序执行的sql语句: 1.开启调试功能(默认是已经 ...
- 原生js总结(干货)
1.js基本数据类型 number string boolean underfined null 2.查找文档中的特定元素 document.getElementById("id" ...
- Shell脚本的基本流程控制
if else read -p '请输入分数:' score if [ $score -lt 60 ]; then echo '60分以下' elif [ $score -lt 70 ]; then ...
- 2道acm编程题(2014):1.编写一个浏览器输入输出(hdu acm1088);2.encoding(hdu1020)
//1088(参考博客:http://blog.csdn.net/libin56842/article/details/8950688)//1.编写一个浏览器输入输出(hdu acm1088)://思 ...
- 支持ipV6和ipV4的客户端编程
ipv4和ipv6在socket初始化的时候是不一样的. ipv4 socket初始化: int CClient::InitSocket(CString strIP, short portNum) { ...
- Opencv 330 如何進行圖像的旋轉?
//圖像旋轉 cv::Mat Transformation(cv::Mat src,int angle) { cv::Mat dst = src.clone(); //中心点 cv::Point ce ...
- JavaScript将小写金额转换成大写
//num为小写金额,单位元 changeMoney(num) { if(isNaN(num))return ""; var strPrefix=""; if( ...
- 使用TensorFlow的卷积神经网络识别自己的单个手写数字,填坑总结
折腾了几天,爬了大大小小若干的坑,特记录如下.代码在最后面. 环境: Python3.6.4 + TensorFlow 1.5.1 + Win7 64位 + I5 3570 CPU 方法: 先用MNI ...