1. 程式人生 > >java-appium,jxl呼叫Excel中的資料,輸入到文字框中。

java-appium,jxl呼叫Excel中的資料,輸入到文字框中。

第一次寫部落格,請多多指教,使用appium呼叫Excel中的資料,輸入到文字框中。

我分享的是我最近在研究的成果。

1、通過appium自動化新增好友。

首先需要做的是,搭建appium環境,這裡我就不說了,百度有很多。

這裡我使用的語言是java。

首先我們需要的是jar包,因為appium搭建是需要配合selenium使用。

讀取Excel中的資料,需要用到jxl.jar包。

下面這是我的jar。

jxl.jar

testng-6.9.9.jar

selenium-java-3.3.1.zip

selenium-server-standalone-3.3.1.jar

java-client-54.1.2.jar

2、接下來就是手機連線電腦,啟動appium。然後就是編寫指令碼,

下面是本人自己通過各種搜尋到的,然後再自己編寫的程式碼。

package weixing;




import org.openqa.selenium.By;


import org.openqa.selenium.NoSuchElementException;


import org.openqa.selenium.remote.DesiredCapabilities;


import io.appium.java_client.android.AndroidDriver;


import java.net.MalformedURLException;


import java.net.URL;


import java.io.File;  


import java.io.IOException;  


import jxl.Cell;  


import jxl.Sheet;  


import jxl.Workbook;  


import jxl.read.biff.BiffException;  


@SuppressWarnings("rawtypes")
public class tianJia { 

       
static boolean isContentAppeared(AndroidDriver driver,String content) {  //通過xpath定位元素判斷操作進行,因為微信有時會出現查詢不到好友,還有就是已經新增過該好友的情況,所以新增用來做判斷。
       
       boolean status=true;
       
   try {  
    
       driver.findElement(By.xpath(content)); 
       
       status = true;  
       }
   catch(NoSuchElementException e){  
    
       status = false;  
   }
return status;  
}  

public static void main(String[] args) throws MalformedURLException, InterruptedException,BiffException, IOException{
//*****************************************注意1.
        DesiredCapabilities capabilities = new DesiredCapabilities();  
        
        capabilities.setCapability("deviceName", "53751994");//
        
        capabilities.setCapability("automationName", "Appium");
        
        capabilities.setCapability("platformName", "Android");
        
        capabilities.setCapability("platformVersion", "6.0.1");
        
        capabilities.setCapability("appPackage", "com.tencent.mm");
        
        capabilities.setCapability("appActivity", "com.tencent.mm.ui.LauncherUI");
        
        capabilities.setCapability("noReset", "True");
        
        capabilities.setCapability("unicodeKeyboard", "True");//設定輸入的編碼
        
        capabilities.setCapability("resetKeyboard", "True");
        
        capabilities.setCapability("autoWebview", "True");    //支援自動切換webview
        
        capabilities.setCapability("recreateChromeDriverSessions", "True");
      
        AndroidDriver driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

//從上面*****************************注意1,到這裡,這是啟動微信的關鍵引數。以下是操作步驟。
        
        Thread.sleep(4000);//設定等待時間
       
        driver.findElementById("com.tencent.mm:id/fr").click();//點選+
        
        Thread.sleep(1000);
        
        driver.findElementByName("新增朋友").click();//點選新增朋友
        
        Thread.sleep(1000);
        
        driver.findElementById("com.tencent.mm:id/h9").click();//點選輸入框
        
        Thread.sleep(1000);
        
    Workbook book=Workbook.getWorkbook(new File("C:\\test.xls"));//呼叫Excel中的資料的路徑,這裡是Excel檔案的路徑,注,這裡只能是以   .xls    結尾,也就是    右鍵單擊>新建> 新建Microsoft Excel 97-2003 工作表.xls
      
    Sheet sheet=book.getSheet(0);//獲得第一個工作表物件      getShoot(1)獲取Excel檔案轉中的   第二個工作表。
   
    for(int a=0;a>=0;a++){//這裡開時迴圈,自動化迴圈新增好友。
    //****************************************************************** 
    Cell cell1=sheet.getCell(0,a);//(0.0)得到第一列第一行的單元格   (0.1)得到第一列第二行的單元格    (1.0)得到第二列第一行的單元格
   
    String result=cell1.getContents();//     定義結果的資料型別
   
    System.out.println(result);//列印結果                 到這裡,是獲取Excel中的資料。
    //****************************************************************************
        driver.findElementById("com.tencent.mm:id/h9").sendKeys(result);//輸入電話號碼
        
        Thread.sleep(2000);
        
        driver.findElementById("com.tencent.mm:id/aqb").click();//點選搜尋
        
        Thread.sleep(3000);
        
        if(isContentAppeared(driver,"//android.widget.Button[@resource-id=\"com.tencent.mm:id/ah1\"]" )==true){ //呼叫上面的的isContentAppeared(driver,“    xpath”),判斷     新增到通訊錄       元素是否存在
       
        driver.findElementById("com.tencent.mm:id/ah1").click();//點選新增到通訊錄
       
        Thread.sleep(2000);
       
            driver.findElementById("com.tencent.mm:id/chg").clear();//清除備註名
            
            Thread.sleep(2000);
            //***********************************************再次獲取表中的資料
            Cell beiZhu=sheet.getCell(1,a);//得到第二列
            
            Cell beiZhu1=sheet.getCell(2,a);//得到
            
        String result1=beiZhu.getContents();
       
        String result2=beiZhu1.getContents();
       
        System.out.print(result1+"("+result2+")");
       
        driver.findElementById("com.tencent.mm:id/chg").sendKeys(result1+"("+result2+")");//輸入備註名
       
            Thread.sleep(2000);
            
            driver.findElementById("com.tencent.mm:id/gv").click();//點擊發送
            
            Thread.sleep(1000);
            
            driver.findElementById("com.tencent.mm:id/hd").click();//點選返回
            
            Thread.sleep(1000);
            
            driver.findElementById("com.tencent.mm:id/h9").clear();//清空
            
            Thread.sleep(2000);
            
            System.out.print("成功傳送驗證資訊!");
            
        }
        else if(isContentAppeared(driver,"//android.widget.Button[@resource-id=\"com.tencent.mm:id/ah2\"]")==true){
       
        driver.findElementById("com.tencent.mm:id/hd").click();//點選返回
       
        Thread.sleep(2000);
       
        driver.findElementById("com.tencent.mm:id/h9").clear();//清空
       
            Thread.sleep(2000);
            
            System.out.print("使用者已經新增為好友!");
        }
        else{
       
        driver.findElementById("com.tencent.mm:id/h9").clear();//清空
       
        System.out.print("該使用者不存在");
        }
        
        System.out.print("              又新增"+a+"行!");
        
    }
    
        driver.quit();
        
        System.out.println("新增完成");
}
}

3、然後執行一下,只要appium搭建和使用沒問題,應該可以跑起來。