- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用的是 android 4.1.2,其 APK 级别为 16。
这是我的python代码:
def setUp(self):
"Setup for the test"
desired_caps = {}
desired_caps['automationName']='Selendroid'
desired_caps['browserName']=''
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '4.1.2'
desired_caps['deviceName'] = 'd65d04425101de'
# Returns abs path relative to this file and not cwd
desired_caps['app'] = '/home/karthik/appiumworkspace/tests/app-debug (2).apk'
desired_caps['appPackage'] = 'com.prueba.maverick'
desired_caps['app-activity'] = '.SplashActivity'
desired_caps['app-wait-activity'] = '.MainActivity'
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)`
python 输出(错误):它说那是- apk 没有 INTERNET 权限。 Selendroid 需要互联网许可才能继续
karthik@dkarnik2-Vostro-3558:~/appiumworkspace/appium-1.4.13/submodules/sample-code/examples/python$ python maverick.test.in.mobile.using.appium.py
test_record_the_audio (__main__.MaverickAndroidTests)
Test it clicks on Record button correctly ... ERROR
======================================================================
ERROR: test_record_the_audio (__main__.MaverickAndroidTests)
Test it clicks on Record button correctly
----------------------------------------------------------------------
Traceback (most recent call last):
File "maverick.test.in.mobile.using.appium.py", line 47, in setUp
self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
File "/usr/local/lib/python2.7/dist-packages/appium/webdriver/webdriver.py", line 36, in __init__
super(WebDriver, self).__init__(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 87, in __init__
self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 141, in start_session
'desiredCapabilities': desired_capabilities,
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/webdriver.py", line 201, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
raise exception_class(message, screen, stacktrace)
WebDriverException: Message: A new session could not be created. (Original error: apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have <uses-permission android:name="android.**permission.INTERNET"/> in your AndroidManifest.xml)
----------------------------------------------------------------------
Ran 1 test in 0.242s
FAILED (errors=1)
*这是我在 Appium 中得到的:*
info: --> POST /wd/hub/session {"desiredCapabilities":{"deviceName":"d65d04425101de","automationName":"Selendroid","app-wait-activity":".MainActivity","browserName":"","appPackage":"com.prueba.maverick","platformVersion":"4.1.2","app-activity":".SplashActivity","platformName":"Android","app":"/home/karthik/appiumworkspace/tests/app-debug (2).apk"}}
info: Client User-Agent string: Python-urllib/2.7
info: [debug] The following desired capabilities were provided, but not recognized by appium. They will be passed on to any other services running on this server. : app-wait-activity, app-activity
info: [debug] No appActivity desired capability or server param. Parsing from apk.
info: [debug] Using local app from desired caps: /home/karthik/appiumworkspace/tests/app-debug (2).apk
info: [debug] Creating new appium session 32a66533-2ca7-4e7b-80e8-e12e6a24c774
info: [debug] Starting selendroid server
info: [debug] Getting Java version
info: Java version is: 1.7.0_95
info: [debug] Checking whether adb is present
info: [debug] Using adb from /home/karthik/selenium/android-sdk-linux/platform-tools/adb
info: [debug] Checking whether selendroid is built yet
info: [debug] Selendroid server exists!
info: [debug] Using fast reset? false
info: [debug] Preparing device for session
info: [debug] Checking whether app is actually present
info: Retrieving device
info: [debug] Trying to find a connected android device
info: [debug] Getting connected devices...
info: [debug] executing cmd: /home/karthik/selenium/android-sdk-linux/platform-tools/adb devices
info: [debug] 1 device(s) connected
info: Found device d65d04425101de
info: [debug] Setting device id to d65d04425101de
info: [debug] Waiting for device to be ready and to respond to shell commands (timeout = 5)
info: [debug] executing cmd: /home/karthik/selenium/android-sdk-linux/platform-tools/adb -s d65d04425101de wait-for-device
info: [debug] executing cmd: /home/karthik/selenium/android-sdk-linux/platform-tools/adb -s d65d04425101de shell "echo 'ready'"
info: [debug] Starting logcat capture
info: [debug] Checking whether aapt is present
info: [debug] Using aapt from /home/karthik/selenium/android-sdk-linux/build-tools/23.0.2/aapt
info: [debug] Checking if has internet permission from manifest.
info: [debug] executing cmd: /home/karthik/selenium/android-sdk-linux/build-tools/23.0.2/aapt dump badging "/home/karthik/appiumworkspace/tests/app-debug (2).apk"
info: [debug] Cleaning up appium session
error: Failed to start an Appium session, err was: Error: apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have <uses-permission android:name="android.**permission.INTERNET"/> in your AndroidManifest.xml
info: [debug] Error: apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have <uses-permission android:name="android.**permission.INTERNET"/> in your AndroidManifest.xml
at /home/karthik/.linuxbrew/lib/node_modules/appium/lib/devices/android/selendroid.js:217:10
at /home/karthik/.linuxbrew/lib/node_modules/appium/node_modules/appium-adb/lib/adb.js:1667:7
at ChildProcess.exithandler (child_process.js:193:7)
at emitTwo (events.js:100:13)
at ChildProcess.emit (events.js:185:7)
at maybeClose (internal/child_process.js:827:16)
at Socket.<anonymous> (internal/child_process.js:319:11)
at emitOne (events.js:90:13)
at Socket.emit (events.js:182:7)
at Pipe._onclose (net.js:475:12)
info: [debug] Responding to client with error: {"status":33,"value":{"message":"A new session could not be created. (Original error: apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have <uses-permission android:name=\"android.**permission.INTERNET\"/> in your AndroidManifest.xml)","origValue":"apk does not have INTERNET permissions. Selendroid needs internet permission to proceed, please check if you have <uses-permission android:name=\"android.**permission.INTERNET\"/> in your AndroidManifest.xml"},"sessionId":null}
info: <-- POST /wd/hub/session 500 236.606 ms - 536 `
如何解决这个问题??
最佳答案
被测应用程序应在 AndroidManifest.xml
中具有以下权限<application>
之外的代码文件中标签:
<uses-permission android:name="android.permission.INTERNET" />
引自http://appium.io/introduction.html?lang=en在设计中
The vendor-provided frameworks we use are:
iOS: Apple's UIAutomation Android
4.2+: Google's UiAutomator Android
2.3+: Google's Instrumentation. (Instrumentation support is provided by bundling a separate project, Selendroid)
因此,您测试的 API 级别和您使用的自动化类型会导致 appium 尝试访问您的应用程序的方式有所不同。
关于android - apk 没有 INTERNET 权限。 Selendroid 需要互联网许可才能继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35883125/
我想在使用 Selendroid 测试我的应用程序时向上滚动微调器。我尝试使用 .scroll 和 .flick 方法。虽然 .scroll 工作,但它不会更新微调器的内容,并且 .flick 方法要
我打算创建一个 Android 应用程序,该应用程序执行网站的 headless 登录,然后在保持登录 session 的同时从后续页面抓取一些内容。 我首先使用了HtmlUnit在一个普通的 Jav
我得到了在设备上启动应用程序的平均设置,有时它工作得很好(应用程序启动并可以由 selendroid 控制)有时(在 firefox.apk 的情况下)会发生这种情况: Aug 10, 2015 3:
我在网上读了一些教程,但我不知道我做得是否正确。 我写了这个方法,当我点击我的android应用程序的某个按钮时,我希望我点击这个按钮能够打开android浏览器并访问google。 代码: pack
我正在互联网上阅读一些教程,但每个教程的说法都与其他教程不同...... 有人说有必要在项目中包含所有 .jar :Selendroid、Selenium 和 WebDriver。 其他地方说只需要在
我正尝试从 Selendroid 测试开始。但是当我使用以下命令启动 Selendroid 时: java -jar selendroid-standalone-0.9.0-with-dependen
我在设置 Selendroid 服务器时遇到问题。当我运行命令时我收到以下错误: C:\Users\mawal2\Downloads>java -jar selendroid-standalone-0
我已经尝试使用以下代码进行滑动。 在运行测试用例时,滑动操作没有发生,我也没有收到任何错误消息。 如何在两侧从左向右滑动,反之亦然。 有以下两种方法:- 方法 1(使用 TouchActions):-
任何人都可以帮助如何使用 selendroid(Java 语言)单击 ListView 中的项目吗?我知道使用检查器我们可以知道元素的 ID,但在 ListView 中所有项目都具有相同的 id..有
我正在使用 Android studio 构建项目我的问题有没有办法在Android studio中设置Selendroid?请一步步教我。 我已经将其添加到我的 Gradle In my Gradl
我正在使用 Selendroid 来测试我的 android 应用程序。它工作正常,但我有几个问题。一个是当应用程序打开时,某个元素会在一段时间后加载,现在我正在使用 Thread.sleep();
我尝试使用以下代码来滑动移动页面。 运行测试用例时,不会发生滑动操作,而且我也没有收到任何错误消息。 3.如何从左到右左右滑动。 1. //Swipe Right to Left side of th
我试图使用 Maven 来开始使用 Selendroid 的教程。但当在 io.selendroid.standalone.server.handler.CreateSessionHandler 第
我已经尝试使用以下代码来滑动移动页面。 在运行测试用例时,滑动操作没有发生,我也没有收到任何错误消息。 如何从左向右滑动两侧,反之亦然。 1. //Swipe Right to Left side o
我是 Selendroid 新手,想知道是否有人可以帮助我解决这个问题。我只是想运行一个测试以确保它有效。这是我的代码: import android.support.v7.app.AppCompat
我正在尝试准备使用 selendroid-standalone 处理与手机的连接的测试用例。该项目使用 Maven 并包含几个子模块,因此我在顶部 pom.xml 中添加了这样的依赖项: io.s
我是移动应用程序自动化测试的新手,并且有将设备与服务器/控制台连接以及从网络远程控制连接的设备等要求。我如何实现这一目标。有什么建议么?我为 native 应用尝试了 selendroid,但我不知道
我想在 Android Studio 中测试应用程序!我已经知道 Espresso、Robolectric、Robotium 等。但是大多数教程都使用 Eclipse,就像使用 Selendroid
我不知道如何在 Visual Studio 中设置 selendroid,也找不到任何帮助我解决问题的文档。 我正在尝试做类似的事情: IWebDriver driver = new Selendro
我需要验证一条 toast 消息,例如“创建成功”。我尝试使用链接文本。但它不起作用。任何人都可以帮我解决这个问题吗? 最佳答案 请在您的 selendroid 代码中使用以下代码 waitForEl
我是一名优秀的程序员,十分优秀!