【问题标题】:Appium: Can I Automate a Webpage on Chrome for Android Browser?Appium:我可以在 Chrome for Android 浏览器上自动化网页吗?
【发布时间】:2014-11-28 19:34:22
【问题描述】:

我想使用 Appium 在我的 Android 设备上启动 Chrome 浏览器并在某个网页上查找元素。这可以做到吗?如果有,怎么做?

谢谢。

维克多

【问题讨论】:

    标签: android robotframework appium


    【解决方案1】:

    只要未指定平台,我将使用 Windows、Visual Studio 2013 和 .NET Framework 4.5 回答。

    环境:

    1. 安装Android SDKVisual Studio 2015 Preview。 Appium 需要它才能使用 android sdk 工具与模拟器或真实设备一起工作。

    2. 下载latest version of Appium。无需安装。解压后即可使用。

    3. 在 Appium 设置中:
      选中“使用浏览器”选项并选择 Chrome。
      勾选“SDK Path”选项并设置路径。

    4. Update Chrome Driver(因为它并不总是 Appium 包中的最新版本)。
      appium pack中chrome驱动的相对路径\node_modules\appium\build\chromedriver\windows

    5. 为了在您的 Adnroid 设备上运行测试,您应该 activate USB debugging mode 并将其连接到 PC

    编码:

    1. 在 Visual Studio 2013 中创建新的单元测试项目:
      文件 → 新建项目 → Visual C# → 测试 → 单元测试项目
      通过这样做,您将用于您的测试框架 MSTest.exe
      如果您愿意,还有其他几个,例如NUnit

    2. 在解决方案资源管理器中:
      右键单击项目名称 → 管理 NuGet 包 → Serch Appium Web 驱动程序 → 添加到项目
      它是必需的,因此您可以使用网络驱动程序。

    3. 在创建的项目集中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);
      }
      
    4. 为了在网页上查找元素,您应该使用定位器,例如唯一的对象标识符。你怎么能找到那些标识符?我使用允许在给定移动设备上模拟网站演示的 Chrome 网络工具。模拟视图后,您可以检查所需的元素。例如,假设我想在 google.com 上查找搜索块:

    所以代码看起来像: var element = _driver.FindElementByXPath("//input[@id='lst-ib']");

    运行测试:

    1. 为了运行你的测试,点击右上角的播放按钮启动 Appium Server

    2. 在 Visual Studio 中按 F5

    这个。请记住,Appium 和 Android SDK 变化很快,因此指南可能会有一些更新。

    【讨论】:

    • 非常棒的教程!你知道如何为嵌入式 Android 浏览器(不是 Chrome)运行 Appium 测试吗?我没有真正的设备,只能在模拟器上工作,在模拟器上安装 Chrome 可能是不可能的。
    【解决方案2】:

    是的,您可以这样做。

    来自他们的网站:

    是的(但在使用 Selendroid 后端时不是)。

    • 使用捆绑的 Chromedriver 服务器作为代理来实现自动化。
    • 在 4.2 和 4.3 中,自动化仅适用于官方 Chrome 浏览器或 Chromium。
    • 在 4.4+ 版本中,自动化也可以在内置的“浏览器”应用程序上运行。
    • Chrome/Chromium/Browser 必须已安装在被测设备上。

    您要查找如何执行此操作的第一个位置是 ChromeDriver、Android 和 web 应用程序上的 Appium Documentation

    【讨论】:

      【解决方案3】:

      是的

      设置正确的 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");
      

      干杯

      【讨论】:

        猜你喜欢
        • 2014-02-20
        • 2015-03-28
        • 1970-01-01
        • 2014-07-15
        • 2014-03-25
        • 2019-02-09
        • 1970-01-01
        • 2019-10-04
        • 2010-10-27
        相关资源
        最近更新 更多