博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Selenium2(WebDriver)_如何判断WebElement元素对象是否存在
阅读量:6573 次
发布时间:2019-06-24

本文共 1441 字,大约阅读时间需要 4 分钟。

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

 

 
 
转自:http://blog.csdn.net/aerchi/article/details/8057544

转载于:https://www.cnblogs.com/donaldlee2008/p/5264178.html

你可能感兴趣的文章
stark组件(1):动态生成URL
查看>>
169. Majority Element
查看>>
大整数加法
查看>>
下拉菜单
查看>>
[清华集训2014]玛里苟斯
查看>>
Doctype作用?严格模式与混杂模式如何区分?它们有何意义
查看>>
0029-求最小的数
查看>>
【MVC+EasyUI实例】对数据网格的增删改查(上)
查看>>
第三章:如何建模服务
查看>>
EF CodeFirst下数据库更新
查看>>
Project Euler 345: Matrix Sum
查看>>
mysql允许远程登录
查看>>
你可能不知道的技术细节:存储过程参数传递的影响
查看>>
POJ1703 Find them, Catch them
查看>>
自适应备忘录 demo
查看>>
HTML转义字符大全(转)
查看>>
[摘录]调动员工积极性的七个关键
查看>>
Linux getcwd()的实现【转】
查看>>
Backup Volume 操作 - 每天5分钟玩转 OpenStack(59)
查看>>
.htaccess 基础教程(四)Apache RewriteCond 规则参数
查看>>