zoukankan      html  css  js  c++  java
  • Selenium2(WebDriver)_如何判断WebElement元素对象是否存在

    http://www.cnblogs.com/puresoul/archive/2013/12/25/3490909.html

    Selenium2(WebDriver)_如何判断WebElement元素对象是否存在

    1. selenium中如果去寻找元素,而元素不存在的话,通常会抛出NoSuchElementException 导致测试失败,但有时候,我们需要去确保页面元素不存在,才是我们正确的验收条件下面的方法可以用来判定页面元素是否存在

    复制代码
     1 public boolean doesWebElementExist(WebDriver driver, By selector)
     2 { 
     3 
     4         try 
     5         { 
     6                driver.findElement(selector); 
     7                return true; 
     8         } 
     9         catch (NoSuchElementException e) 
    10         { 
    11                 return false; 
    12         } 
    13 }         
    复制代码

    2.一般有这样的应用场合,例如我们要验证在一个网站是否登录成功,那么可以通过判断登录之后是否显示相应元素: 

    WebElement linkUsername = driver.findElement(By.xpath("//a[contains(text(),"+username+")]"));

    return linkUsername.isDisplayed();
     
    这一方法的前提是:该元素之前已经存在,仅仅需要判断是否被显示。
     
    现在存在另一种场合,页面元素并不存在,即通过driver.findElement只能在超时之后得到NoSuchElementException的异常。
     
    因此只好通过如下方法解决:
    复制代码
     1 boolean ElementExist (By Locator )
     2 {
     3   try
     4   {
     5     driver.findElement( Locator );
     6     return true;
     7   }
     8   catch(org.openqa.selenium.NoSuchElementException ex)
     9   {
    10       return false;
    11   }
    12 }
    复制代码

     但这一方法仍然不理想,有这样两个问题: 

    1、这一方法不属于任何一个page页,因此需要额外进行框架上的变更以支持这些功能函数,否则就必须在每一个用到该函数的page类写一遍。 
    2、仍然需要等到超时才能得知结果,当需要频繁使用该函数的时候会造成相当的时间浪费。
     
    3. 
    类似于seleniumRC中的isTextPresent 方法 
    用xpath匹配所有元素(//*[contains(.,'keyword')]),判断是否存在包含期望关键字的元素。 
    使用时可以根据需要调整参数和返回值。 
     
      
    4. Xpath 多重判断 
    复制代码
    1 while(currentPageLinkNumber<MaxPage)
    2 {
    3   WebElement PageLink;
    4   PageLink = driver.findElement(By.xpath("//a[@class = 'PageLink' and @title ='"+Integer.toString(currentPageLinkNumber+1)+"']"));
    5   PageLink.click();
    6   currentPageLinkNumber++;
    7 //OtherOperation();
    8 }
    复制代码
     
     
    转自:http://blog.csdn.net/aerchi/article/details/8057544
  • 相关阅读:
    模板 无源汇上下界可行流 loj115
    ICPC2018JiaozuoE Resistors in Parallel 高精度 数论
    hdu 2255 奔小康赚大钱 最佳匹配 KM算法
    ICPC2018Beijing 现场赛D Frog and Portal 构造
    codeforce 1175E Minimal Segment Cover ST表 倍增思想
    ICPC2018Jiaozuo 现场赛H Can You Solve the Harder Problem? 后缀数组 树上差分 ST表 口胡题解
    luogu P1966 火柴排队 树状数组 逆序对 离散化
    luogu P1970 花匠 贪心
    luogu P1967 货车运输 最大生成树 倍增LCA
    luogu P1315 观光公交 贪心
  • 原文地址:https://www.cnblogs.com/donaldlee2008/p/5264178.html
Copyright © 2011-2022 走看看