Appium appium 简明教程 (6)——启动 appium 及 android 模拟器

乙醇 · 2014年06月30日 · 最后由 fayer1986 回复于 2019年12月04日 · 1790 次阅读

一般情况下,我们都从命令行启动 appium。

windows 下,dos 命令窗口输入

appium

如果该命令报错,那么请重装 appium

npm install -g appium

如果安装出错,请自行更换 npm 源。

npm -g --registry http://registry.cnpmjs.org  install appium

然后请打开 android 的模拟器,如果没有请新建一个虚拟设备。请自行解除设备锁定(手动把屏幕解锁了),以防万一。

*本文版权归乙醇所有,欢迎转载,但请注明作者与出处,严禁用于任何商业用途 *

下面的代码以启动 android 原生的计算器程序为例

ruby 篇

require 'appium_lib'

caps   = { caps:       { platformName: 'Android', appActivity: '.Calculator', appPackage: 'com.android.calculator2' },
           appium_lib: { sauce_username: nil, sauce_access_key: nil } }
driver = Appium::Driver.new(caps).start_driver

讨论:可以看出 ruby lib 里面的 Appium::Driver 类实际上就是原生的 webdriver 类的子类,当然了,由于 ruby 语法灵活,也可以使用 monkey patch 来实现类似功能。

python 篇

from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.2'
desired_caps['deviceName'] = 'Android Emulator'
desired_caps['appPackage'] = 'com.android.calculator2'
desired_caps['appActivity'] = '.Calculator'

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

讨论:webdriver.Remote 实际上就是原生 webdriver 的子类,另外 Remote() 构造函数的第一个参数中需要显示指定 appium server 监听的端口

java 篇

新建 java 项目时候,请注意将 selenium-webdriver 以及 appium client 的 jar 包导入

import io.appium.java_client.AppiumDriver;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");//这句不是必须的
capabilities.setCapability("deviceName","Android Emulator");
capabilities.setCapability("platformVersion", "4.4");
capabilities.setCapability("platformName","Android");
capabilities.setCapability("appPackage", "com.android.calculator2");
capabilities.setCapability("appActivity", ".Calculator");

AppiumDriver driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

讨论:AppiumDrvier 是原生 webdriver 的子类。

在这里我们可以看到,新建 driver 的时候必须要指定一个DesiredCapabilities对象,该对象究竟是何方神圣,我们下一节会仔细讲解。

本文版权归乙醇所有,欢迎转载,但请注明作者与出处,严禁用于任何商业用途

共收到 2 条回复 时间 点赞
zhaomenglei 回复

maven 项目中引入

selenium-webdriver 和 appium client 的 jar 包在哪里下载啊?

乙醇 Appium 简明教程 (持续更新) 中提及了此贴 12月01日 09:57
乙醇 [该话题已被删除] 中提及了此贴 08月26日 15:25
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册