如何自动化 Android 标准浏览器

How to automate the Android Standard Browser

我想用 Android 标准浏览器测试几个网站。理想情况下,我想使用 AppiumEspresso,但是当我找到有关如何使用它们测试自动化应用程序的说明时,我找不到相同的自动化 Android 浏览器(不是 Chrome , FF 或其他浏览器)。

我希望能够调用浏览器、导航到网站、单击元素等。我以前用 Selenium 做过的事情。

有没有办法用 Appium and/or Espresso 做到这一点?

如果您已经安装了android sdk并配置了路径,请跳过第1步。

第一步: 在 .bashrc 文件中配置你的 sdk 路径

类型 终端的 gedit .bashrc

打开文本编辑器,输入以下内容并保存

  export ANDROID_HOME="$HOME/adt/sdk"

  export JAVA_HOME="/usr/bin/java"

  export PATH=${PATH}:~/adt/sdk/tools

  export PATH=${PATH}:~/adt/sdk/platform-tools

第二步: 然后在您的终端输入 uiautomatorviewer 以启动 uiautomatorviewer 并获取您要检查的元素的详细信息。

参考示例代码:

import os

from time import sleep


import unittest

from appium import webdriver


# Returns absolute path relative to this file and not cwd
    PATH = lambda p: os.path.abspath(
    os.path.join(os.path.dirname(__file__), p))
class SimpleAndroidTests(unittest.TestCase):
    def setUp(self):
        desired_caps = {}
#Specify platform below(Android, iOS)
        desired_caps['platformName'] = 'Android'
#Specify OS version(Settings->About phone -> android version)
        desired_caps['platformVersion'] = '4.4.4'
#Obtain the Device name from Adb[For Android](Terminal Command: "adb devices")
        desired_caps['deviceName'] = 'TA93304QZD'
#Specify the path to Application
        desired_caps['app'] = PATH('Media Drive-com.sandisk.scotti-55-v2.0.3.apk')

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

    def tearDown(self):
        # end the session
    self.driver.quit()

    def test_images_copy(self):
        self.driver.implicitly_wait(5)

        for i in range(0,4):
            self.driver.find_element_by_id("com.sandisk.scotti:id/txt_Next").click()
            self.driver.implicitly_wait(5)
        self.driver.find_element_by_id("com.sandisk.scotti:id/txt_Close").click()
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_name("OK").click()
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_id("com.sandisk.scotti:id/txt_Photo").click()
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_id("com.sandisk.scotti:id/btn_Switch_Local").click()
        self.driver.implicitly_wait(5)
        self.driver.find_element_by_id("com.sandisk.scotti:id/txt_Name").click()
        self.driver.implicitly_wait(5)
if __name__ == '__main__':
    suite = unittest.TestLoader().loadTestsFromTestCase(SimpleAndroidTests)
    unittest.TextTestRunner(verbosity=2).run(suite)

A​​ppium 对此有点模棱两可,似乎无法决定 android 浏览器是否受支持。

根据 Appium 文档,您可以使用 Android 浏览器: http://appium.io/slate/en/master/?python#mobile-chrome-on-emulator-or-real-device

来自服务器功能部分:

browserName Name of mobile web browser to automate. Should be an empty string if automating an app instead. ‘Safari’ for iOS and ‘Chrome’, ‘Chromium’, or ‘Browser’ for Android

但是代码中没有引用它,我一直无法让它工作。