Selenium2学习-029-WebUI自动化实战实例-027-判断元素是否存在
非常简单的源码,敬请各位小主参阅。若有不足之处,敬请大神指正,不胜感激!
- /**
- * Verify the element exist or not
- *
- * @author Aaron.ffp
- * @version V1.0.0: autoUISelenium main.java.aaron.sele.demo IsWebelementExist.java isElementExist, 2015-1-22 3:13:34 Exp $
- *
- * @param by : By
- *
- * @return boolean
- */
- public boolean isElementExist(By by){
- boolean exist = false;
- try {
- this.webdriver.findElement(by);
- exist = true;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- return exist;
- }
- /**
- * Verify the element exist or not(ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName)
- *
- * @author Aaron.ffp
- * @version V1.0.0: autoUISelenium main.java.aaron.sele.demo IsWebelementExist.java isElementExist, 2015-1-22 3:13:34 Exp $
- *
- * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName)
- *
- * @return boolean
- */
- public boolean isElementExist(String locator){
- boolean exist = false;
- /* ID */
- try {
- this.webdriver.findElement(By.id(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* name */
- try {
- this.webdriver.findElement(By.name(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* cssSelector */
- try {
- this.webdriver.findElement(By.cssSelector(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* Xpath */
- try {
- this.webdriver.findElement(By.xpath(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* linkText */
- try {
- this.webdriver.findElement(By.linkText(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* className */
- try {
- this.webdriver.findElement(By.className(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* partialLinkText */
- try {
- this.webdriver.findElement(By.partialLinkText(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* tagName */
- try {
- this.webdriver.findElement(By.tagName(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- return exist;
- }
- /**
- * Verify the element exist or not(ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName)
- *
- * @author Aaron.ffp
- * @version V1.0.0: autoUISelenium main.java.aaron.sele.demo IsWebelementExist.java isElementExist, 2015-1-22 3:13:34 Exp $
- *
- * @param webdriver : WebDriver
- * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName)
- *
- * @return boolean
- */
- public boolean isElementExist(WebDriver webdriver, String locator){
- boolean exist = false;
- /* ID */
- try {
- webdriver.findElement(By.id(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* name */
- try {
- webdriver.findElement(By.name(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* cssSelector */
- try {
- webdriver.findElement(By.cssSelector(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* xpath */
- try {
- webdriver.findElement(By.xpath(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* linkText */
- try {
- webdriver.findElement(By.linkText(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* className */
- try {
- webdriver.findElement(By.className(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* partialLinkText */
- try {
- webdriver.findElement(By.partialLinkText(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- /* tagName */
- try {
- webdriver.findElement(By.tagName(locator));
- exist = true;
- return exist;
- } catch (NoSuchElementException e) {
- this.logger.error(e);
- }
- return exist;
- }
- /**
- * @function Verify the element exist or not
- *
- * @author Aaron.ffp
- * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java isElementExistByXpath, 2014-11-23 4:03:52 Exp $
- *
- * @param webdriver : WebDriver
- * @param locator : XPath
- *
- * @return boolean
- */
- public boolean isElementExistByXpath(WebDriver webdriver, String locator){
- boolean isExists = false;
- try {
- webdriver.findElement(By.xpath(locator));
- isExists = true;
- } catch (NoSuchElementException nsee) {
- this.logger.error(nsee);
- nsee.printStackTrace();
- }
- return isExists;
- }
- /**
- * @function Verify the element exist or not
- *
- * @author Aaron.ffp
- * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java isWebelementExistByXpath, 2014-11-23 4:03:52 Exp $
- *
- * @param locator : XPath
- * @return boolean
- */
- public boolean isElementExistByXpath(String locator){
- boolean isExists = false;
- try {
- this.webdriver.findElement(By.xpath(locator));
- isExists = true;
- } catch (NoSuchElementException nsee) {
- this.logger.error(nsee);
- nsee.printStackTrace();
- }
- return isExists;
- }
PS:当元素不可用或者隐藏式,返回的也是不存在,请知悉!
至此,WebUI 自动化功能测试脚本第 027-判断元素是否存在 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^
Selenium2学习-029-WebUI自动化实战实例-027-判断元素是否存在的更多相关文章
- Selenium2学习-012-WebUI自动化实战实例-010-解决元素失效:StaleElementReferenceException: stale element reference: element is not attached to the page document
元素失效的想象提示信息如下图所示,此种问题通常是因为元素页面刷新之后,为重新获取元素导致的. 解决此类问题比较简单,只需要在页面刷新之后,重新获取一下元素,就可以消除此种错误了. 以下以易迅网搜索为例 ...
- Selenium2学习-030-WebUI自动化实战实例-028-获取元素位置及大小
自动化测试过程中,有时需要获取元素的位置.大小,以获取元素的位置,通过 Actions 模拟鼠标,进行相对坐标操作.例如,有些元素定位不方便,或者需要对某一元素相对区域范围进行暴力点击测试,此时就需要 ...
- Selenium2学习-001-Selenium2 WebUI自动化Java开发 Windows 环境配置
此文主要介绍 Selenium2 WebUI自动化Java开发 Windows 环境配置,供各位亲们参考,若有不足之处,敬请各位大神指正,非常感谢! 所需软件列表如下所示: 所属分类 具体名称 备注 ...
- Selenium2学习-007-WebUI自动化实战实例-005-解决 Firefox 版本不兼容:org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary
此文主要讲述 Java 运行 Selenium 脚本时,因 Friefox 浏览器版本与 selenium-server-standalone-x.xx.x.jar 不兼容引起的 org.openqa ...
- Selenium2学习-035-WebUI自动化实战实例-033-页面快照截图应用之三 -- 区域截图(专业版)
之前有写过两篇博文讲述了 WebUI 自动化测试脚本中常用的截图方法,敬请参阅如下所示链接: 浏览器显示区域截图 浏览器指定区域截图 那么当需要截取的区域不在浏览器显示窗口范围之内时,之前的方法显然无 ...
- Selenium2学习-027-WebUI自动化实战实例-025-JavaScript 在 Selenium 自动化中的应用实例之三(页面滚屏,模拟鼠标拖动滚动条)
日常的 Web UI 自动化测试过程中,get 或 navigate 到指定的页面后,若想截图的元素或者指定区域范围不在浏览器的显示区域内,则通过截屏则无法获取相应的信息,反而浪费了无畏的图片服务器资 ...
- Selenium2学习-039-WebUI自动化实战实例-文件上传下载
通常在 WebUI 自动化测试过程中必然会涉及到文件上传的自动化测试需求,而开发在进行相应的技术实现是不同的,粗略可划分为两类:input标签类(类型为file)和非input标签类(例如:div.a ...
- Selenium2学习-018-WebUI自动化实战实例-016-自动化脚本编写过程中的登录验证码问题
日常的 Web 网站开发的过程中,为提升登录安全或防止用户通过脚本进行黄牛操作(宇宙最贵铁皮天朝魔都的机动车牌照竞拍中),很多网站在登录的时候,添加了验证码验证,而且验证码的实现越来越复杂,对其进行脚 ...
- Selenium2学习-016-WebUI自动化实战实例-014-Selenium 窗口选择
在日常的 WebUI 自动化测试脚本编写过程中,经常需要打开新的页面,或者在多个打开的页面之间进行切换,以对页面元素进行相应的操作,以模拟用户的行为,实现 UI 的自动化测试.在过往的时间中,经常有初 ...
随机推荐
- Java_获取当前月最后一天
List<String> ms = DateUtils.getMonths(7,"yyyyMM"); SimpleDateFormat sdf = new Simple ...
- Java JDBC批处理插入数据操作
在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及 ...
- C# 使用 GetOleDbSchemaTable 检索架构信息(表、列、主键等)
本文演示如何用 ADO.NET 中 OleDbConnection 对象的 GetOleDbSchemaTable 方法检索数据库架构信息.数据源中的架构信息包括数据库或可通过数据库中的数据源.表和视 ...
- 【新产品发布】《GM1001 4~20mA 高精度电流采集模块》
一.主要特性 1.测量精度高达±0.01%FS±0.002mA: 2.采样电阻仅10欧姆(20mA时压降仅0.2V),对被测系统影响 微乎其微: 3.差分输入,可测量正反电流无需改动硬件,使用方便: ...
- 字体 font typograph
https://en.wikipedia.org/wiki/Typeface *** 字体渲染 https://www.smashingmagazine.com/2012/04/a-closer-lo ...
- HDU 2089 数位dp入门
开始学习数位dp...一道昨天看过代码思想的题今天打了近两个小时..最后还是看了别人的代码找bug...(丢丢) 传说院赛要取消 ? ... 这么菜不出去丢人也好吧~ #include<stdi ...
- PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别
[PHP 配置文件中与错误相关的选项 ] 选项 描述 error_reporting 设置错误报告的级别 display_errors 是否显示错误 log_errors 设置是否将错误信息记录到日志 ...
- ThinkPHP 关联模型中查询某条记录的父级(非查询子级)
数据表 id cat_name cat_pid 76 手机.数码 0 84 手机配件 76 86 蓝牙耳机 84 从属关 ...
- MySQL存储引擎总结
MySQL存储引擎总结 作者:果冻想 字体:[增加 减小] 类型:转载 这篇文章主要介绍了MySQL存储引擎总结,本文讲解了什么是存储引擎.MyISAM.InnoDB.MEMORY.MERGE等内 ...
- PHP Error 和 Logging 函数
PHP Error 和 Logging 函数 PHP Error 和 Logging 简介 Error 和 Logging 函数允许您对错误进行处理和记录. Error 函数允许用户定义错误处理规则, ...