zoukankan      html  css  js  c++  java
  • 元素(WebElement)Selenium快速入门(三)

    上一篇《元素定位-----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的用法,千万别做坏事。

  • 相关阅读:
    导出大智慧L2要密码的公式
    SQL Server 索引结构及其使用
    职业式证券交易全貌向职业交易员进军者鉴[转]
    sqlite多字段拼接方法
    推荐两个UI、PSD文件搜索网站
    利用事件冒泡和阻止事件冒泡的例子
    js通过八个点 拖动改变div大小
    匿名函数运用js脚本一对圆括号
    js对象转换为json格式的jquery辅助类
    简单清晰的缓冲运动框架
  • 原文地址:https://www.cnblogs.com/devtester/p/8550119.html
Copyright © 2011-2022 走看看