selenium+java的常使用的一些操作

Posted 来呀来呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium+java的常使用的一些操作相关的知识,希望对你有一定的参考价值。

 常用操作均在下面的有测试用例有体现。

 

 

  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 }

 

以上是关于selenium+java的常使用的一些操作的主要内容,如果未能解决你的问题,请参考以下文章

Java中的常见面试题

selenium java 浏览器操作

selenium测试(Java)--元素操作

关于近期selenium+java的一些总结

Selenium用法详解cookies操作JAVA爬虫

详解介绍Selenium常用API的使用--Java语言(完整版)