Appium-Server与Appium-Desktop的区别

上一篇 / 下一篇  2019-10-28 15:48:31 / 个人分类:Appium

    Appium-Server的配置,在之前的博文已有介绍,基于PythonAppium环境搭建合集,所以在此处就不详细介绍了。今天主要来分享下Appium-Server和Appium desktop在使用上的区别。
  在这篇博文中分享了如何使用模拟器,Genymotion模拟器的安装及脚本制作,但还没分享如何使代码正常运行起来,接下来详细说明。
  在谈起代码时,就需要先了解下appium的关键字
  Appium 服务关键字

Android特有

        iOS特有
    Appium-Server
  了解了appium的关键字,再来看代码里面的参数,示例如下:
   desired_caps = {
请在文本框输入文字
  'platformName': 'Android',
  'platformVersion': '4.4.4',
  'deviceName': 'S5',
  'appPackage': '',   #包名
  'appActivity': '',    #app入口
  'udid': '192.168.66.101:5555',  # genymotion设备
  'noReset': 'true',
  'unicodeKeyboard': 'True',
  'resetKeyboard': 'True',
  }
  这些参数,前六个参数都是必须的,后三个参数可视自己的配置使用。还有更多的参数,看上述的appium关键字即可,也可以参照该文档:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
  参数定位
  代码示例如下:
   account = driver.find_element_by_id('id/rel_content')
  account.find_element_by_id('id/edit_acount')
  driver.press_keycode(61)
  print("换行操作")
  if driver.find_element_by_id('id/img_clear_acount'):
  clr_account = driver.find_element_by_id('id/img_clear_acount').click()
  print("账号清除成功")
  account.send_keys('10086')
  print("账号输入完毕")
  time.sleep(2)
  driver.press_keycode(61)
  print("换行操作")
  password = driver.find_element_by_id('id/rel_content')
  password.find_element_by_id('id/edit_pass')
  password.send_keys('123456')
  print("密码输入完毕")
  driver.find_element_by_xpath('//android.widget.TextView[@text="登 录"]').click()
  print("点击登录按钮")
  上述代码中,使用到的常规定位方式,id,xpath,还有更多的操作api,可参见这篇博文,里面总结的很详细,Appium Python API 中文版。
  运行appium
  代码讲述完毕,那又如何使用appium来运行代码呢?步骤如下:
  1.配置appium
  打开appium,对参数进行配置,先配置dvices name,获取devices name的方式使用命令adb devices即可,配置如下
    2.服务设置
  将serveraddress配置为本地ip即可,端口默认为4723,配置如下:
    3.启动appium
  点击appium界面上的启动按钮,出现如下界面,则说明启动成功。
   服务启动成功,则可以运行代码了,在模拟器中可查看到对应的操作。运行代码时,会自动在真机或模拟器上安装两个app,appium settings和unlock,自动安装的,可以忽略。
  上述就是Appium-Server使用的配置了,但Appium-Server有一两年没有更新了。Windows版在2015年底止步于的 AppiumForWindows_1_4_16_1.zip 。
  于是,新的工具 Appium-desktop 来了! 它来继续 Appium-Server的使命。当然,Appium-Server当前仍然是可用的。接下来则来说说Appium-desktop。
  Appium-desktop
  下载安装
  下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.13.0,依照各自需要的版本下载即可。比如windows版,将下载下来的.exe文件,双击安装即可。
  安装配置
  在安装好了之后,用appium-doctor来检查是否配置成功,但新版的appium是没有doctor文件的,所以需要通过npm下载并安装,命令如下:
 npm install -g appium-doctor
  输入命令后,出现如下图所示界面:
    安装好了之后,再使用如下命令检查新版的appium是否安装成功,命令如下:
 appium-doctor
  输入命令后,出现如下界面,则说明安装成功:
    启用配置
  1.启动服务
  打开安装好的appium,出现如下界面

    连接本机的话,host可以不配置,就用默认的0.0.0.0,端口也用默认的4723,直接点击start server v1.13.0按钮,出现如下界面,说明服务启动成功
    2.新建连接
  new session window,进入到如下页面:

          输入参数如下:
    参数配置好了之后,最好是保存下,避免下次使用的时候,需要再次输入。
  3.元素定位
  点击start session按钮后,进入到如下页面:
    在该页面就可以进行元素定位了,元素定位的详细api,可以参见之前提到的那篇api文档。
  将写好的代码,在编译工具中执行即可,便可在模拟器或真机上看到效果,效果图就不上了。
  问题总结
  1.appium-desktop可支持安卓高版本
  在模拟器那一篇博文中,我说我使用模拟器的原因,就是因为老版的appium不支持android8及以上的版本,今天在使用appium-desktop时,发现可以直接使用appium desktop定位元素。
  2.'unicodeKeyboard' must be of type boolean; 'resetKeyboard' must be of type boolean
  该问题是appium版本的问题,新版本unicodeKeyboard、resetKeyboard是布尔类型,将True的双引号去掉,就可以了,如:
  'unicodeKeyboard': True,
  'resetKeyboard': True,
  以上就是我个人在使用上,对appium-server和appium-desktop认知的区别了,具体其他的区别,还待深入使用后发现。今天分享就到这了,有描述有误的地方,欢迎批评指正。祝大家节日快乐。
  
 
      以上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8 052),我们将立即处理。
 
 
 
 
 
 
      了解更多课程内容及课程安排,可咨询QQ 2852509883 或致电客服 400-821-0951(工作日9:00-17:30)
【看这里】技术交流、拓展人脉、领取福利欢迎加入博为峰网校大课堂>>>

 


TAG:

 

评分:0

我来说两句

Open Toolbar