extjs assertions from selenium expectedconditions.java

来源:互联网 发布:java导出excel 进度条 编辑:程序博客网 时间:2024/06/04 19:42
import java.util.List;


import org.junit.Assert;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.ExpectedConditions;




public class Assertions {
public static void assertTitileIs(String title,WebDriver driver){
String currentTitle=driver.getTitle();
Assert.assertEquals(title,currentTitle);
}
public static void assertTitleContains(String title,WebDriver driver){
String currentTitle=driver.getTitle();
boolean contains=currentTitle.contains(title);

Assert.assertTrue(contains);
}

public static void assertPresentOfElementLocated(WebDriver driver,By locator){
boolean present;
try{
WebElement ele=driver.findElement(locator);
present= true;
}catch(Exception e){
present= false;
}
Assert.assertTrue(present);
}
public static void assertPresentOfAllElementsLocatedBy(WebDriver driver,By locator){
boolean present=true;
try{
List<WebElement> elements=driver.findElements(locator);
present=(elements.size()>0);
}catch(Exception e){
present=false;
}
Assert.assertTrue(present);
}
public static void assertVisibilityOfElementLocated(WebDriver driver,By locator){
boolean visibility;
try{
WebElement ele=driver.findElement(locator);
visibility= ele.isDisplayed();
}catch(Exception e){
visibility= false;
}
Assert.assertTrue(visibility);
}
public static void assertInvisibilityOfElementWithText(WebDriver driver,By locator,String text){
boolean invisibility;
try{
WebElement ele=driver.findElement(locator);
String elementText=ele.getText();
invisibility=!(elementText.equals(text));
}catch(Exception e){
invisibility=true;
}
Assert.assertTrue(invisibility);
}
public static void assertElementClickable(WebDriver driver,By locator){
boolean clickable;
try{
WebElement ele=driver.findElement(locator);
if(ele.isDisplayed() && ele.isEnabled()){
clickable=true;
}else clickable=false;
}catch(Exception e){
clickable=false;
}
Assert.assertTrue(clickable);
}
private static WebElement parent(WebDriver driver,WebElement ele){
//WebElement parent=(WebElement)((JavascriptExecutor)driver).executeScript("return arguments[0].parentNode;", ele);
WebElement parent = ele.findElement(By.xpath(".."));
return parent;
}

/**
* isSelected work with type="checkbox" or type="radio"
* use checked
* for extjs checkbox and radio is rendered as <input type="button"/>
* so need check the class x-form-cb-checked exists
* @param driver
* @param locator
*/
public static void assertElementSelected(WebDriver driver,By locator){
boolean selected;
try{
WebElement ele=driver.findElement(locator);
selected=ele.isSelected();
WebElement parent=ele;
while(!selected && !"html".equals(parent.getTagName()) && (parent=parent(driver,parent))!=null){
if(parent.getAttribute("class").contains("x-form-cb-checked")){
selected=true;
break;
}
}
}catch(Exception e){
e.printStackTrace();
selected=false;
}
Assert.assertTrue(selected);
}

public static void assertAlertPresent(WebDriver driver){
boolean present;
try{
driver.switchTo().alert();
present=true;
}catch(Exception e){
present=false;
}
Assert.assertTrue(present);
}
public static void assertInvisibilityOfElementLocated(WebDriver driver,By locator){
boolean invisibility;
try{
WebElement ele=driver.findElement(locator);
invisibility= !(ele.isDisplayed());
}catch(Exception e){
invisibility= true;
}
Assert.assertTrue(invisibility);
}
public static void assertVisibilityOfAllElementsLocatedBy(WebDriver driver,By locator){
boolean visibility=true;
try{
List<WebElement> elements=driver.findElements(locator);
for(WebElement element:elements){
if(!element.isDisplayed()){
visibility=false;
break;
}
}
}catch(Exception e){
visibility= false;
}
Assert.assertTrue(visibility);
}
public static void assertTextPresentInElement(WebDriver driver, WebElement element,String text){
String elementText=element.getText();
Assert.assertTrue( elementText.contains(text));
}

public static void assertTextPresentInElementLocated(WebDriver driver,By locator,String text){
boolean present=true;
try{
WebElement ele=driver.findElement(locator);
String elementText=ele.getText();
present=elementText.contains(text);
}catch(Exception e){
present=false;
}
Assert.assertTrue( present );
}
public static void assertTextPresentInElementValue(WebDriver driver, WebElement element, String text){
boolean present=true;
try{
String elementValue=element.getAttribute("value");
System.out.println(element.getAttribute("class"));

if(element.getAttribute("class").contains("checkbox")
|| element.getAttribute("id").contains("checkbox")
||element.getAttribute("class").contains("radio")
|| element.getAttribute("id").contains("radio")){
elementValue="off";
WebElement parent=element;
while("off".equals(elementValue) && !"html".equals(parent.getTagName()) && (parent=parent(driver,parent))!=null){
if(parent.getAttribute("class").contains("x-form-cb-checked")){
elementValue="on";
break;
}
}
}
present=elementValue.contains(text);
}catch(Exception e){
present=false;
}
Assert.assertTrue( present );
}

public static void assertTextPresentInElementValue(WebDriver driver,By locator,String text){
boolean present=true;
try{
WebElement element=driver.findElement(locator);
String elementValue=element.getAttribute("value");

//System.out.println(element.getAttribute("class"));

if(element.getAttribute("class").contains("checkbox")
|| element.getAttribute("id").contains("checkbox")
||element.getAttribute("class").contains("radio")
|| element.getAttribute("id").contains("radio")){
elementValue="off";
WebElement parent=element;
while("off".equals(elementValue) && !"html".equals(parent.getTagName()) && (parent=parent(driver,parent))!=null){
if(parent.getAttribute("class").contains("x-form-cb-checked")){
elementValue="on";
break;
}
}
}

present= elementValue.contains(text);
}catch(Exception e){
present=false;
}
Assert.assertTrue(present);
}



public static void main(String args[]){
System.setProperty("webdriver.chrome.driver","lib/chromedriver.exe");
WebDriver driver=new ChromeDriver();


driver.get("http://localhost/tree_test/tree2.html");
//driver.get("http://try.sencha.com/extjs/4.1.1/docs/Ext.form.field.Checkbox.1/");

try {
Thread.sleep(3000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

Assertions.assertElementSelected(driver, By.id("checkbox2-inputEl"));
Assertions.assertTextPresentInElementValue(driver, By.id("radio1-inputEl"), "off");
Assertions.assertTextPresentInElementValue(driver, By.id("checkbox2-inputEl"), "on");

try {

Thread.sleep(2000);

} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
driver.quit();
}

}
}
0 0
原创粉丝点击