常用操作均在下面的有測試用例有體現。
1 package CRM; 2 3 import static org.testng.Assert.assertEquals; 4 5 import java.awt.Checkbox; 6 import java.sql.Driver; 7 import java.util.Iterator; 8 import java.util.List; 9 import java.util.Set; 10 import java.util.concurrent.Delayed; 11 12 import org.openqa.selenium.By; 13 import org.openqa.selenium.JavascriptExecutor; 14 import org.openqa.selenium.WebDriver; 15 import org.openqa.selenium.WebElement; 16 import org.openqa.selenium.firefox.FirefoxDriver; 17 import org.openqa.selenium.interactions.Actions; 18 import org.openqa.selenium.support.ui.Select; 19 import org.openqa.selenium.support.ui.Sleeper; 20 import org.testng.annotations.Test; 21 22 23 24 public class NewTest { 25 public static boolean a; 26 public static WebDriver dr; 27 //登錄的靜態方法 28 public static boolean login(String name,String pwd) throws InterruptedException { 29 dr=new FirefoxDriver(); 30 dr.get("http://crm.cloud.5kcrm.com/"); 31 dr.findElement(By.name("name")).clear(); 32 dr.findElement(By.name("password")).clear(); 33 dr.findElement(By.name("name")).sendKeys(name); 34 dr.findElement(By.name("password")).sendKeys(pwd); 35 dr.findElement(By.name("submit")).click(); 36 Thread.sleep(5000); 37 38 try { 39 dr.findElement(By.id("menu_home")); 40 a=true; 41 } catch (Exception e) { 42 a=false; 43 } 44 return a; 45 } 46 47 48 //登錄密碼錯誤的登錄,調用登錄方法 49 @Test 50 public void 登錄密碼錯誤() throws InterruptedException { 51 boolean a=login("boss1", "123456"); 52 dr.quit(); 53 assertEquals(a, false); 54 } 55 56 57 //登錄正確賬號密碼的登錄,調用登錄方法 58 @Test 59 public void 正確登錄() throws InterruptedException { 60 boolean a=login("boss", "123456"); 61 dr.quit(); 62 assertEquals(a, true); 63 } 64 65 66 //學習 不同的定位方法 67 @Test 68 public void 組織構架() throws InterruptedException{ 69 boolean a=login("boss", "123456"); 70 Actions action=new Actions(dr); 71 WebElement webe=dr.findElement(By.xpath("//a[contains(text(),'辦')]")); 72 webe.click(); 73 dr.findElement(By.linkText("組織架構")).click(); 74 Thread.sleep(4000); 75 WebElement w1=dr.findElement(By.xpath(".//*[@id='browser']/li[1]/span/a")); 76 Actions a1=new Actions(dr); 77 a1.moveToElement(w1).perform(); 78 dr.findElement(By.xpath(".//*[@id='popOverBox']/input[2]")).click(); 79 dr.findElement(By.xpath("html/body/div[9]/div[2]/form/div[1]/div/input")).sendKeys("測試部門"); 80 dr.findElement(By.cssSelector(".controls>textarea[name='description']")).sendKeys("測試測試"); 81 dr.findElement(By.xpath("html/body/div[9]/div[3]/div/button[1]")).click(); 82 } 83 84 85 //選擇類、切換和切回frame框架、 86 @Test 87 public void 測試訓練() throws InterruptedException{ 88 boolean a=login("boss", "123456"); 89 dr.manage().window().maximize(); 90 dr.get("http://crm.cloud.5kcrm.com/index.php?m=task&a=add"); 91 dr.findElement(By.id("subject")).sendKeys("測試任務"); 92 WebElement d1=dr.findElement(By.name("message_alert")); 93 94 if (d1.getAttribute("checked").equals("true")){ 95 d1.click(); 96 } 97 dr.findElement(By.name("owner_name")).click(); 98 Thread.sleep(1300); 99 dr.findElement(By.xpath(".//*[@id='dialog-message7']/form/ul/li[2]/a")).click(); 100 dr.findElement(By.xpath(".//*[@id='ta2']/label")).click(); 101 dr.findElement(By.xpath("html/body/div[8]/div[3]/div/button[1]")).click(); 102 dr.findElement(By.id("due_date")).sendKeys("2017-07-29 15:57"); 103 WebElement status=dr.findElement(By.name("status")); 104 Select slstatus = new Select(status); 105 slstatus.selectByVisibleText("進行中"); 106 dr.switchTo().frame("ueditor_0"); 107 dr.findElement(By.xpath("//body")).sendKeys("測試內容填寫"); 108 dr.switchTo().defaultContent(); 109 dr.findElement(By.xpath("html/body/div[6]/div/div/div[3]" 110 + "/div/form/table/tfoot/tr/td[2]/input[1]")).click(); 111 Thread.sleep(3000); 112 boolean a1=false; 113 try { 114 dr.findElement(By.linkText("測試任務")); 115 a1=true; 116 117 } catch (Exception e) { 118 119 } 120 121 //測試list中查找需要的元素 122 WebElement tg1=null; 123 List<WebElement> tagnames= dr.findElements(By.tagName("input")); 124 for (WebElement tg:tagnames){ 125 if(tg.getAttribute("name").equals("password")){ 126 tg1=tg; 127 break; 128 } 129 130 } 131 System.out.println(tg1.getTagName().toString()); 132 133 assertEquals(a1,true); 134 dr.quit(); 135 } 136 137 138 //切換window頁面 139 @Test 140 public void 切換window() throws Exception{ 141 boolean a=login("boss", "123456"); 142 Thread.sleep(4000); 143 WebElement a1=dr.findElement(By.linkText("客戶管理")); 144 Actions a2=new Actions(dr); 145 a2.clickAndHold(a1).perform(); 146 Thread.sleep(1000); 147 dr.findElement(By.xpath("html/body/div[2]/div/div/div[2]/ul[1]/li[1]/ul/li[9]/a")).click(); 148 //1、獲得當前的句柄 149 String hd=dr.getWindowHandle(); 150 System.out.println(hd.toString()); 151 //2、獲得所有的句柄 152 Set<String> hds=dr.getWindowHandles(); 153 System.out.println(hds.toString()); 154 String h1=null; 155 //3、切換句柄 156 for(String h:hds){ 157 if(!h.equals(hd)){ 158 h1=h; 159 break; 160 } 161 } 162 163 dr.switchTo().window(h1); 164 dr.get("http://baidu.com"); 165 dr.switchTo().window(hd); 166 dr.get("http://so.com"); 167 } 168 }