如何自动化 Android 标准浏览器
How to automate the Android Standard Browser
我想用 Android 标准浏览器测试几个网站。理想情况下,我想使用 Appium
或 Espresso
,但是当我找到有关如何使用它们测试自动化应用程序的说明时,我找不到相同的自动化 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)
Appium 对此有点模棱两可,似乎无法决定 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
但是代码中没有引用它,我一直无法让它工作。
我想用 Android 标准浏览器测试几个网站。理想情况下,我想使用 Appium
或 Espresso
,但是当我找到有关如何使用它们测试自动化应用程序的说明时,我找不到相同的自动化 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)
Appium 对此有点模棱两可,似乎无法决定 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
但是代码中没有引用它,我一直无法让它工作。