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搭建和使用没问题,应该可以跑起来。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111430.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月17日 下午6:00
下一篇 2021年9月17日 下午7:00


相关推荐

  • java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]

    java 舆情分析_基于Java实现网络舆情分析系统研究与实现.doc[通俗易懂]基于Java实现网络舆情分析系统研究与实现基于Java实现网络舆情分析系统研究与实现摘要:通过对各大门户网站、论坛和贴吧的留言和评论的爬取,录入后台数据库。用户可根据主题、内容进行搜索查看。通过利用中科院分词算法进行实现对爬去下来的内容进行分词处理,分词处理后的结果利用自行研究出来的基于权值算法实现的中文情感分析进行评论的倾向性分析,通过对句子结构和主张词以及情感副词的判断来对评论的情感倾向性做出…

    2026年2月5日
    5
  • Python3网络爬虫教程2——urlopen的返回对象

    Python3网络爬虫教程2——urlopen的返回对象上接:Python3网络爬虫教程1——初始爬虫(爬虫是干嘛的?)https://blog.csdn.net/u011318077/article/details/865088722.3.urlopen的返回对象rsp=request.urlopen(url)有时候不一定能获得对象,断网了,服务器故障等等geturl:返回请求对象的URLinfo:返回反馈对象的meta信息…

    2025年6月3日
    5
  • 使用xinetd

    使用xinetdnbsp OpenSource 使用 xinetd 作者 JoseNazario 译者 Fenng 日期 25 Oct 2004 出处 http www dbanotes net 版本 2001 11 27Version0 01 2003 05 23Version1 00Jose 描述了如何着手配置调整 xinetd xinetd 取代了 inetd 并且提供了访问控制

    2026年3月17日
    3
  • 阿里云原生数据仓库AnalyticDB MySQL版学习

    阿里云原生数据仓库AnalyticDB MySQL版学习阿里云原生数据仓库AnalyticDBMySQL版是融合数据库、大数据技术于一体的阿里云原生企业级数据仓库服务。AnalyticDBMySQL版支持高吞吐的数据实时增删改、低延时的实时分析和复杂ETL,兼容上下游生态工具,可用于构建企业级报表系统、数据仓库和数据服务引擎。AnalyticDBMySQL版的产品系列包含弹性模式和预留模式。计算分时弹性功能支持按照小时编排计算资源量,解决业务高峰期计算资源瓶颈,同时大幅降低了计算资源成本。计算资源池隔离功能支持按照不同的业务类型或优先级将计算任务

    2025年12月13日
    6
  • linux系统如何查看tomcat版本,【Linux查看tomcat版本】

    linux系统如何查看tomcat版本,【Linux查看tomcat版本】Linux 查看 tomcat 版本 一 不同的 tomcat 查看版本可能不同 例如有的直接执行 version sh 就可以 其他就没有 一般来说 在 tomcat 启动时就会有版本信息 如 信息 Initializing 1 1onhttp 5 616 38 09org apache catalina startup Catalinaload 信息

    2026年3月16日
    2
  • 使用webmagic爬取网页信息以及通过selenium进行页面元素操作

    使用webmagic爬取网页信息以及通过selenium进行页面元素操作前言本篇文章主要讲解如何使用 webmagic 技术来实现网页的爬取 以及使用 selenium 操作页面元素 实现点击 输入事件所用技术 1 webmagic 添加需要爬取的 urlSpider create newMyProcess addUrl https www cnblogs com thread 5 run 在 process 里面抓取符合条件

    2026年3月20日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号