API实例快速参考

来源:互联网 发布:js new date 加1天 编辑:程序博客网 时间:2024/06/14 02:00

//System.setProperty("webdriver.firefox.bin", "E:/firefox/firefox.exe");
//FirefoxDriver dr = new FirefoxDriver();

============ Selenium 2.0 WebDriver API  Demo ==========

[java] view plaincopy
  1. package example;  
  2.   
  3. import org.openqa.selenium.By;  
  4. import org.openqa.selenium.WebDriver;  
  5. import org.openqa.selenium.WebElement;  
  6. import org.openqa.selenium.chrome.ChromeDriver;  
  7. import org.openqa.selenium.support.ui.ExpectedCondition;  
  8. import org.openqa.selenium.support.ui.WebDriverWait;  
  9.   
  10. import util.Log;  
  11. import util.SeleniumUtil;  
  12.   
  13. public class TestAllInOne {  
  14.     public static final String BASE_URL = "http://www.baidu.com";  
  15.   
  16.     public static void main(String[] args) throws Exception {  
  17.         System.setProperty("webdriver.chrome.driver""E:/0down/selenium/chromedriver.exe");  
  18.           
  19.         //打开firefox  
  20.         ChromeDriver dr = new ChromeDriver();  
  21.           
  22.         //访问页面  
  23.         dr.get(BASE_URL);  
  24. //      dr.navigate().to(BASE_URL);//与dr.get()效果相同  
  25. //      dr.navigate().forward();//让浏览器前进一步  
  26. //      dr.navigate().back();//让浏览器后退一步  
  27.         Log.Info(dr.getPageSource());  
  28.           
  29.         //等待页面加载完毕,直到条件满足  
  30.         (new WebDriverWait(dr, 10)).until(new ExpectedCondition<Boolean>() {  
  31.             public Boolean apply(WebDriver dr) {  
  32.                 Log.Info("web driver wait...");  
  33.                 int index = dr.getPageSource().indexOf("京ICP证030173号");  
  34.                 if(index != -1){  
  35.                     Log.Info("web driver wait, true...");  
  36.                     return true;  
  37.                 }else{  
  38.                     Log.Info("web driver wait, false...");  
  39.                     return false;  
  40.                 }  
  41.             }  
  42.         });  
  43.           
  44.         //等待页面加载完毕,直到条件满足,一个while循环,也挺简单的吧  
  45.         /* 
  46.         while(true){ 
  47.              Log.Info("wait for..."); 
  48.             int index = dr.getPageSource().indexOf("京ICP证030173号"); 
  49.             if(index != -1){ 
  50.                 Log.Info("wait for, true..."); 
  51.                 break; 
  52.             } 
  53.             Thread.sleep(1 * 1000); 
  54.         }*/  
  55.           
  56.         //等待元素加载完成  
  57. //      (new WebDriverWait(dr, 10)).until(  
  58. //          ExpectedConditions.presenceOfElementLocated(By.id("kw"))  
  59. //      );  
  60.           
  61.         //等待元素加载完成,并可点击  
  62. //      WebDriverWait wait = new WebDriverWait(dr, 10);  
  63. //      wait.until(ExpectedConditions.elementToBeClickable(By.id("su")));  
  64.           
  65.         //全局性的影响,只要WebDriver不消失,每隔10秒检查元素是否加载完成,直到加载完成。  
  66. //      dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);  
  67. //      dr.get("http://somedomain/url_that_delays_loading");  
  68. //      dr.findElement(By.id("myDynamicElement"));  
  69.           
  70. //      WebElement we = dr.findElement(By.id("kw"));  
  71. //      we.sendKeys("selenium");  
  72. //      we.click();  
  73.           
  74. //      dr.findElement(By.id("元素id"));//最常用  
  75. //      dr.findElement(By.className("class名称"));//比较常用  
  76. //      dr.findElement(By.tagName("tag名称"));//比较常用  
  77. //      dr.findElement(By.cssSelector("css选择器"));//比较常用  
  78. //      dr.findElement(By.name("元素的name属性"));//比较常用  
  79. //      dr.findElement(By.linkText("超链接的内容"));//不常用  
  80. //      dr.findElement(By.partialLinkText("超链接的部分内容"));//不常用  
  81. //      dr.findElement(By.xpath("xpath表达式"));//不常用  
  82.           
  83.         //1:用java从文本中读取jQuery,并用WebDriver加载jQuery  
  84.         SeleniumUtil.LoadAndExecuteJQuery(dr);  
  85.         //2:用WebDriver执行你写的jQuery代码,可以返回单个元素,也可以返回元素数组,或无返回值  
  86.         //执行你的jQuery代码,既然能执行自已的jQuery代码,就能做任何事情了  
  87.         dr.executeScript("$('#kw').val('selenium'); $('#kw').val($('#kw').val() + ' java');");  
  88.         //也可以用WebDriver API进行页面元素的操作  
  89.         WebElement el = dr.findElement(By.id("kw"));  
  90.         el.sendKeys("selenium java");  
  91.         dr.findElement(By.id("su")).click();  
  92.           
  93.         //WebDriver专用的select下接框处理类  
  94.         /* 
  95.         List<WebElement> elList = dr.findElements(By.tagName("select")); 
  96.         if(elList != null && elList.size() > 0){ 
  97.             Select select = new Select(elList.get(0)); 
  98.             select.deselectAll(); 
  99.             select.selectByVisibleText("Edam"); 
  100.             select.selectByIndex(1); 
  101.             select.selectByValue("10010"); 
  102.         }*/  
  103.           
  104.         //window和frame的切换  
  105.         /* 
  106.         dr.switchTo().window("xxName"); 
  107.         dr.switchTo().frame("xxName"); 
  108.         */  
  109.           
  110.         //浏览器自带的alert弹出框的处理  
  111.         /* 
  112.         Alert alert = dr.switchTo().alert(); 
  113.         if(alert != null){ 
  114.             alert.accept(); 
  115.             alert.dismiss(); 
  116.             alert.sendKeys("collonn"); 
  117.         }*/  
  118.           
  119.         /* 
  120.         //用jQuery查找一个元素 
  121.         WebElement wea = (WebElement)dr.executeScript("return $('#kw').get(0);"); 
  122.         //用jQuery查找一组元素 
  123.         List<WebElement> weaList = (List<WebElement>)dr.executeScript("return $('.stu_info').get();"); 
  124.         //返回Boolean 
  125.         Boolean flagB = (Boolean)dr.executeScript("return true;"); 
  126.         //返回Double 
  127.         Double flagD = (Double)dr.executeScript("return 12.12;"); 
  128.         //返回Long 
  129.         Long flagL = (Long)dr.executeScript("return 123;"); 
  130.         //返回String 
  131.         String flagS = (String)dr.executeScript("return 'collonn';"); 
  132.         //返回String数组 
  133.         List<String> flagSs = (List<String>)dr.executeScript("var ary = ['a', 'b', 'c']; return ary;"); 
  134.         */  
  135.           
  136.         //保存网面截图  
  137.         SeleniumUtil.TakeScreenshot(dr, null);  
  138.           
  139.         //关闭浏览器  
  140.         dr.quit();  
  141.     }  
  142.   
  143. }  
0 0
原创粉丝点击