【发布时间】:2014-11-28 19:34:22
【问题描述】:
我想使用 Appium 在我的 Android 设备上启动 Chrome 浏览器并在某个网页上查找元素。这可以做到吗?如果有,怎么做?
谢谢。
维克多
【问题讨论】:
标签: android robotframework appium
我想使用 Appium 在我的 Android 设备上启动 Chrome 浏览器并在某个网页上查找元素。这可以做到吗?如果有,怎么做?
谢谢。
维克多
【问题讨论】:
标签: android robotframework appium
只要未指定平台,我将使用 Windows、Visual Studio 2013 和 .NET Framework 4.5 回答。
环境:
安装Android SDK 或Visual Studio 2015 Preview。 Appium 需要它才能使用 android sdk 工具与模拟器或真实设备一起工作。
下载latest version of Appium。无需安装。解压后即可使用。
在 Appium 设置中:
选中“使用浏览器”选项并选择 Chrome。
勾选“SDK Path”选项并设置路径。
Update Chrome Driver(因为它并不总是 Appium 包中的最新版本)。
appium pack中chrome驱动的相对路径\node_modules\appium\build\chromedriver\windows
为了在您的 Adnroid 设备上运行测试,您应该 activate USB debugging mode 并将其连接到 PC
编码:
在 Visual Studio 2013 中创建新的单元测试项目:
文件 → 新建项目 → Visual C# → 测试 → 单元测试项目
通过这样做,您将用于您的测试框架 MSTest.exe
如果您愿意,还有其他几个,例如NUnit。
在解决方案资源管理器中:
右键单击项目名称 → 管理 NuGet 包 → Serch Appium Web 驱动程序 → 添加到项目
它是必需的,因此您可以使用网络驱动程序。
在创建的项目集中desired capabilities.
我使用以下内容:
public void InitializeDriver()
{
Console.WriteLine("Connecting to Appium server");
_capabilities = new DesiredCapabilities();
_capabilities.SetCapability("deviceName", "Nexus One");
_capabilities.SetCapability("newCommandTimeout", "300");
_capabilities.SetCapability(CapabilityType.BrowserName, "Chrome");
_capabilities.SetCapability(CapabilityType.Version, "5.0.1");
_capabilities.SetCapability(CapabilityType.Platform, "Android");
//Application path and configurations
_driver = new AndroidDriver(new Uri("http://127.0.0.1:4723/wd/hub"), _capabilities);
}
为了在网页上查找元素,您应该使用定位器,例如唯一的对象标识符。你怎么能找到那些标识符?我使用允许在给定移动设备上模拟网站演示的 Chrome 网络工具。模拟视图后,您可以检查所需的元素。例如,假设我想在 google.com 上查找搜索块:
所以代码看起来像: var element = _driver.FindElementByXPath("//input[@id='lst-ib']");
运行测试:
为了运行你的测试,点击右上角的播放按钮启动 Appium Server
在 Visual Studio 中按 F5
这个。请记住,Appium 和 Android SDK 变化很快,因此指南可能会有一些更新。
【讨论】:
是的,您可以这样做。
来自他们的网站:
是的(但在使用 Selendroid 后端时不是)。
- 使用捆绑的 Chromedriver 服务器作为代理来实现自动化。
- 在 4.2 和 4.3 中,自动化仅适用于官方 Chrome 浏览器或 Chromium。
- 在 4.4+ 版本中,自动化也可以在内置的“浏览器”应用程序上运行。
- Chrome/Chromium/Browser 必须已安装在被测设备上。
您要查找如何执行此操作的第一个位置是 ChromeDriver、Android 和 web 应用程序上的 Appium Documentation
【讨论】:
是的
设置正确的 DesiredCapabilites() 并运行 AppiumDriver 后,您可以像使用 selenium 的普通桌面网页自动化一样跟进它。
我将这些功能用于我的设备
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,"Android");
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME,"Chrome");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME,"Your device name here");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,"4.4");
干杯
【讨论】: