在自动化脚本编写过程中,经常需要获取页面元素的文本进行判断,以便对于不同的文本进行不同的处理。比如:很多的购物网站,加入购物车的按钮是有多个状态的(加入购物车、到货通知、暂不销售等),那么在实际的操作过程中,需要对此按钮对应的不同的值,执行相应的逻辑。
代码相对比较简单,在此不再详细说明了,直接上码,敬请各位小主参阅,若有不足之处,敬请大神指正,非常感谢!
获取元素值的源码如下所示:
1 /** 2 * @function Get text of element. It will be return null when the element not exist or By is null 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementText, 2015-1-25 20:48:04 Exp $ 6 * 7 * @param by : By 8 * 9 * @return String 10 */ 11 public String getElementText(By by){ 12 String elementText = ""; 13 14 if (by == null) { 15 return ""; 16 } 17 18 try { 19 elementText = this.getElement(by).getText().toString().trim(); 20 } catch (NoSuchElementException nsee) { 21 this.logger.error(nsee); 22 nsee.printStackTrace(); 23 } 24 25 return elementText; 26 } 27 28 /** 29 * @function Get text of element. It will be return null when the element not exist or locator is empty 30 * 31 * @author Aaron.ffp 32 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementText, 2015-1-25 20:47:40 Exp $ 33 * 34 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 35 * 36 * @return String 37 */ 38 public String getElementText(String locator){ 39 String elementText = ""; 40 41 locator = ((locator == null)|| "".equals(locator)) ? "" : locator; 42 43 try { 44 elementText = this.getElement(locator).getText().toString().trim(); 45 } catch (NoSuchElementException nsee) { 46 this.logger.error(nsee); 47 nsee.printStackTrace(); 48 } 49 50 return elementText; 51 } 52 53 /** 54 * @function Get text of element. It will be return empty when the element not exist or locator is empty 55 * 56 * @author Aaron.ffp 57 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementText, 2015-1-25 19:10:42 Exp $ 58 * 59 * @param webdriver : WebDriver 60 * @param by : By 61 * 62 * @return String 63 */ 64 public String getElementText(WebDriver webdriver, By by){ 65 String elementText = ""; 66 67 try { 68 elementText = this.getElement(webdriver, by).getText().toString().trim(); 69 } catch (NoSuchElementException nsee) { 70 this.logger.error(nsee); 71 nsee.printStackTrace(); 72 } 73 74 return elementText; 75 } 76 77 /** 78 * @function Get text of element. It will be return empty when the element not exist or locator is empty 79 * 80 * @author Aaron.ffp 81 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementText, 2015-1-25 19:01:03 Exp $ 82 * 83 * @param webdriver : WebDriver 84 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 85 * 86 * @return String 87 */ 88 public String getElementText(WebDriver webdriver, String locator){ 89 String elementText = ""; 90 91 try { 92 elementText = this.getElement(webdriver, locator).getText().toString().trim(); 93 } catch (NoSuchElementException nsee) { 94 this.logger.error(nsee); 95 nsee.printStackTrace(); 96 } 97 98 return elementText; 99 } 100 101 /** 102 * @function Get text of element. It will be return empty when the element not exist or locator is empty 103 * 104 * @author Aaron.ffp 105 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementTextByXpath, 2015-1-25 20:47:03 Exp $ 106 * 107 * @param locator : XPath 108 * 109 * @return String 110 */ 111 public String getElementTextByXpath(String locator){ 112 String elementText = ""; 113 114 try { 115 elementText = this.webdriver.findElement(By.xpath(locator)).getText().toString().trim(); 116 } catch (NoSuchElementException nsee) { 117 this.logger.error(nsee); 118 nsee.printStackTrace(); 119 } 120 121 return elementText; 122 } 123 124 /** 125 * @function Get text of element. It will be return empty when the element not exist or locator is empty 126 * 127 * @author Aaron.ffp 128 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementText, 2015-1-25 20:47:03 Exp $ 129 * 130 * @param webdriver : WebDriver 131 * @param locator : XPath 132 * 133 * @return String 134 */ 135 public String getElementTextByXpath(WebDriver webdriver, String locator){ 136 String elementText = ""; 137 138 try { 139 elementText = this.webdriver.findElement(By.xpath(locator)).getText().toString().trim(); 140 } catch (NoSuchElementException nsee) { 141 this.logger.error(nsee); 142 nsee.printStackTrace(); 143 } 144 145 return elementText; 146 }
获取元素属性值的源码如下所示:
1 /** 2 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 3 * 4 * @author Aaron.ffp 5 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValue, 2015-1-25 20:42:13 Exp $ 6 * 7 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 8 * @param attribute : attribute of element 9 * 10 * @return String 11 */ 12 public String getElementValue(By by, String attribute){ 13 String attrbuteValue = ""; 14 15 try { 16 attrbuteValue = this.getElement(by).getAttribute(attribute); 17 } catch (NoSuchElementException nsee) { 18 this.logger.error(nsee); 19 nsee.printStackTrace(); 20 } 21 22 return attrbuteValue; 23 } 24 25 /** 26 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 27 * 28 * @author Aaron.ffp 29 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValue, 2015-1-25 20:37:02 Exp $ 30 * 31 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 32 * @param attribute : attribute of element 33 * 34 * @return String 35 */ 36 public String getElementValue(String locator, String attribute){ 37 String attrbuteValue = ""; 38 39 try { 40 attrbuteValue = this.getElement(locator).getAttribute(attribute); 41 } catch (NoSuchElementException nsee) { 42 this.logger.error(nsee); 43 nsee.printStackTrace(); 44 } 45 46 return attrbuteValue; 47 } 48 49 /** 50 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 51 * 52 * @author Aaron.ffp 53 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValue, 2015-1-25 19:41:17 Exp $ 54 * 55 * @param webdriver : WebDriver 56 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 57 * @param attribute : attribute of element 58 * 59 * @return String 60 */ 61 public String getElementValue(WebDriver webdriver, By by, String attribute){ 62 String attrbuteValue = ""; 63 64 try { 65 attrbuteValue = this.getElement(webdriver, by).getAttribute(attribute); 66 } catch (NoSuchElementException nsee) { 67 this.logger.error(nsee); 68 nsee.printStackTrace(); 69 } 70 71 return attrbuteValue; 72 } 73 74 /** 75 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 76 * 77 * @author Aaron.ffp 78 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValue, 2015-1-25 19:36:23 Exp $ 79 * 80 * @param webdriver : WebDriver 81 * @param locator : (ID, name, cssSelector, xpath, linkText, className, partialLinkText, tagName) 82 * @param attribute : attribute of element 83 * 84 * @return String 85 */ 86 public String getElementValue(WebDriver webdriver, String locator, String attribute){ 87 String attrbuteValue = ""; 88 89 try { 90 attrbuteValue = this.getElement(webdriver, locator).getAttribute(attribute); 91 } catch (NoSuchElementException nsee) { 92 this.logger.error(nsee); 93 nsee.printStackTrace(); 94 } 95 96 return attrbuteValue; 97 } 98 99 /** 100 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 101 * 102 * @author Aaron.ffp 103 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValueByXpath, 2015-1-25 20:47:03 Exp $ 104 * 105 * @param locator : XPath 106 * @param attribute : attribute of element 107 * 108 * @return String 109 */ 110 public String getElementValueByXpath(String locator, String attribute){ 111 String attrbuteValue = ""; 112 113 try { 114 attrbuteValue = this.webdriver.findElement(By.xpath(locator)).getAttribute(attribute); 115 } catch (NoSuchElementException nsee) { 116 this.logger.error(nsee); 117 nsee.printStackTrace(); 118 } 119 120 return attrbuteValue; 121 } 122 123 /** 124 * @function Get text of attribute to the element. It will be return empty when the attribute not exist. 125 * 126 * @author Aaron.ffp 127 * @version V1.0.0: autoUISelenium main.java.aaron.sele.core SeleniumCore.java getElementValueByXpath, 2015-1-25 20:47:03 Exp $ 128 * 129 * @param webdriver : WebDriver 130 * @param locator : XPath 131 * @param attribute : attribute of element 132 * 133 * @return String 134 */ 135 public String getElementValueByXpath(WebDriver webdriver, String locator, String attribute){ 136 String attrbuteValue = ""; 137 138 try { 139 attrbuteValue = this.webdriver.findElement(By.xpath(locator)).getAttribute(attribute); 140 } catch (NoSuchElementException nsee) { 141 this.logger.error(nsee); 142 nsee.printStackTrace(); 143 } 144 145 return attrbuteValue; 146 }
至此,WebUI 自动化功能测试脚本第 026-获取页面元素值或者元素属性值 顺利完结,希望此文能够给初学 Selenium 的您一份参考。
最后,非常感谢亲的驻足,希望此文能对亲有所帮助。热烈欢迎亲一起探讨,共同进步。非常感谢! ^_^