点击选项在 Appium 程序中不起作用
Posted
技术标签:
【中文标题】点击选项在 Appium 程序中不起作用【英文标题】:Click option is not working in Appium program 【发布时间】:2017-11-07 19:53:15 【问题描述】:public class basic extends base
public static void main(String[] args) throws MalformedURLException
// TODO Auto-generated method stub
androidDriver<AndroidElement> driver= Capabilities();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElementByXPath("//android.widget.TextView[@text='Preference']").click();
这是我的程序。当我运行时,只有应用程序被调用但首选项菜单没有打开。请参考下图。
Appium Preference
这是appium日志
info: --> POST /wd/hub/session "capabilities":["desiredCapabilities":"app":"C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk ","platformName":"Android","deviceName":"sachin","requiredCapabilities":],"desiredCapabilities":"app":"C:\Users\Sachin\workspace\Practise \src\ApiDemos-debug.apk","platformName":"Android","deviceName":"sachin","requiredCapabilities": 信息:客户端用户代理字符串:Apache-HttpClient/4.5.3 (Java/1.8.0_131) 信息:[调试] 没有 appActivity 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 没有 appPackage 所需的功能或服务器参数。从 apk 解析。 信息:[调试] 使用来自所需上限的本地应用程序:C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk 信息:[调试] 创建新的 appium 会话 2ee7300a-fdaf-4b56-8b3f-17688e987e33 信息:启动 android appium 信息:[调试] 获取 Java 版本 信息:Java 版本为:1.8.0_77 info: [debug] 检查 adb 是否存在 信息:[调试] 使用来自 C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe 的 adb 信息:[调试] 从应用程序清单解析包和活动 info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中提取包和启动活动。 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储徽章 C:\Users\Sachin\workspace\Practise\src\ApiDemos -debug.apk 信息:[调试] 徽章包:io.appium.android.apis 信息:[调试] 标记行为:io.appium.android.apis.ApiDemos 信息:[调试]解析的包和活动是:io.appium.android.apis/io.appium.android.apis.ApiDemos 信息:[调试] 使用快速重置?真的 信息:[调试] 为会话准备设备 info: [debug] 检查应用程序是否实际存在 信息:检索设备 信息:[调试] 尝试查找已连接的 android 设备 信息:[调试]正在连接设备... 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe 设备 信息:[调试] 1 个设备已连接 信息:找到设备 9b56dc7f0603 信息:[调试] 将设备 ID 设置为 9b56dc7f0603 信息:[调试] 等待设备准备好并响应 shell 命令(超时 = 5) 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 wait-for-device 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "echo 'ready'" 信息:[调试] 启动 logcat 捕获 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 23 信息:设备 API 级别为:23 信息:[调试]为语言提取字符串:默认 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "getprop persist.sys.language" 信息:[调试] 当前设备 persist.sys.language: 信息:[调试] java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\appium_apk_tools.jar" "stringsFromApk" "C:\Users\Sachin\workspace\Practise \src\ApiDemos-debug.apk" "C:\Users\Sachin\AppData\Local\Temp\io.appium.android.apis" info: [debug] 从转换后的 strings.json 中读取字符串 信息:[调试]将语言设置为默认值 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 push "C:\Users\Sachin\AppData\Local\Temp\io. appium.android.apis\strings.json" /data/local/tmp info: [debug] 检查 aapt 是否存在 信息:[调试] 使用来自 C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 的 aapt 信息:[调试] 从清单中检索进程。 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\aapt.exe 转储 xmltree C:\Users\Sachin\workspace\Practise\src\ApiDemos -debug.apk AndroidManifest.xml 信息:[调试] 将应用进程设置为:io.appium.android.apis 信息:[调试] 由于服务器未使用 --full-reset 启动,因此未卸载应用程序 信息:[调试] 检查 C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk 的应用程序证书。 信息:[调试] 执行 cmd:java -jar "C:\Program Files (x86)\Appium\node_modules\appium\node_modules\appium-adb\jars\verify.jar" C:\Users\Sachin\workspace\Practise\ src\ApiDemos-debug.apk 信息:[调试] 应用程序已签名。 信息:[调试] Zip 对齐 C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk info: [debug] 检查 zipalign 是否存在 信息:[调试] 使用 C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe 中的 zipalign 信息:[调试] Zip-aligning apk。 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\build-tools\25.0.2\zipalign.exe -f 4 C:\Users\Sachin\workspace\Practise\src\ ApiDemos-debug.apk C:\Users\Sachin\AppData\Local\Temp\11756-5248-1j4mqt2\appium.tmp 信息:[调试] 应用程序的 MD5 为 29649242b53e9a67ba855b067422713c 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "ls /data/local/tmp/29649242b53e9a67ba855b067422713c.apk" 信息:[调试] 获取 io.appium.android.apis 的安装状态 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 23 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "pm list packages -3 io.appium.android.apis" 信息:[调试] 应用程序已安装 信息:应用程序已安装,正在重置应用程序 信息:[调试]运行快速重置(停止和清除) 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "am force-stop io.appium.android.apis" 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "pm clear io.appium.android.apis" 信息:[调试] 转发系统:4724 到设备:4724 info: [debug] 执行 cmd: C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 forward tcp:4724 tcp:4724 信息:[调试] 将 appium 引导程序推送到设备... 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 push "C:\Program Files (x86)\Appium\node_modules\appium\构建\android_bootstrap\AppiumBootstrap.jar" /data/local/tmp/ 信息:[调试] 将设置 apk 推送到设备... 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 install "C:\Program Files (x86)\Appium\node_modules\appium\构建\settings_apk\settings_apk-debug.apk" 信息:[调试]将解锁帮助应用程序推送到设备... 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 install "C:\Program Files (x86)\Appium\node_modules\appium\构建\unlock_apk\unlock_apk-debug.apk" 信息:启动应用程序 信息:[调试] 试图杀死所有“uiautomator”进程 信息:[调试]使用“uiautomator”获取所有进程 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "ps 'uiautomator'" 信息:[调试]未找到匹配的进程 信息:[调试]运行引导 信息:[调试] 生成:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell uiautomator runtest AppiumBootstrap.jar -c io.appium.android.bootstrap.Bootstrap - e pkg io.appium.android.apis -e disableAndroidWatchers false 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:numtests = 1 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:流= 信息:[调试] [UIAUTOMATOR STDOUT] io.appium.android.bootstrap.Bootstrap: 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:id=UiAutomatorTestRunner 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:test=testRunServer 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:class=io.appium.android.bootstrap.Bootstrap 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:当前 = 1 信息:[调试] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:1 info: [debug] [BOOTSTRAP] [debug] 在端口 4724 上打开的套接字 info: [debug] [BOOTSTRAP] [debug] Appium Socket Server Ready 信息:[调试] [BOOTSTRAP] [调试] 正在加载 json... 信息:[debug] [BOOTSTRAP] [debug] json 加载完成。 info: [debug] [BOOTSTRAP] [debug] 注册的崩溃观察者。 信息:[调试] 如果设备不活动,则唤醒设备 信息:[调试] 将命令推送到 appium 工作队列:[“wake”,] 信息:[调试] [BOOTSTRAP] [调试] 客户端已连接 信息:[debug] [BOOTSTRAP] [debug] 从客户端获取数据:"cmd":"action","action":"wake","params": info: [debug] [BOOTSTRAP] [debug] 得到了 ACTION 类型的命令 信息:[debug] [BOOTSTRAP] [debug] 得到命令动作:wake 信息:[debug] [BOOTSTRAP] [debug] 返回结果:"status":0,"value":true 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "dumpsys window" 信息:[调试] 屏幕已解锁,继续。 信息:[调试] 将命令推送到 appium 工作队列:[“getDataDir”,] info: [debug] [BOOTSTRAP] [debug] 从客户端获取数据:"cmd":"action","action":"getDataDir","params": info: [debug] [BOOTSTRAP] [debug] 得到了 ACTION 类型的命令 信息:[debug] [BOOTSTRAP] [debug] 得到命令操作:getDataDir 信息:[调试] dataDir 设置为:/data/local/tmp 信息:[调试]将命令推送到 appium 工作队列:[“compressedLayoutHierarchy”,“compressLayout”:false] 信息:[debug] [BOOTSTRAP] [debug] 返回结果:"status":0,"value":"/data/local/tmp" info: [debug] [BOOTSTRAP] [debug] 从客户端获取数据:"cmd":"action","action":"compressedLayoutHierarchy","params":"compressLayout":false info: [debug] [BOOTSTRAP] [debug] 得到了 ACTION 类型的命令 信息:[debug] [BOOTSTRAP] [debug] 得到命令操作:compressedLayoutHierarchy 信息:[debug] [BOOTSTRAP] [debug] 返回结果:"status":0,"value":false 信息:[调试] 获取设备 API 级别 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "getprop ro.build.version.sdk" 信息:[调试] 设备处于 API 级别 23 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n io.appium.android.apis/io.appium.android.apis.ApiDemos" 信息:[调试]等待 pkg "io.appium.android.apis" 和活动 "io.appium.android.apis.ApiDemos" 被关注 信息:[调试] 获得重点包和活动 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "dumpsys window windows" 信息:[调试] 执行 cmd:C:\Users\Sachin\AppData\Local\Android\sdk\platform-tools\adb.exe -s 9b56dc7f0603 shell "getprop ro.build.version.release" 信息:[调试] 设备版本为 6.0.1 信息:[调试] 设备启动!准备好命令 info: [debug] 将命令超时设置为默认值 60 秒 信息:[调试] Appium 会话以 sessionId 2ee7300a-fdaf-4b56-8b3f-17688e987e33 开始 信息: GET /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33 信息:[调试]成功响应客户端:"status":0,"value":"platform":"LINUX","browserName":"Android","platformVersion":"6.0.1"," webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":,"desired":"app" :"C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"sachin","app":"C:\Users\Sachin \workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"9b56dc7f0603","sessionId":"2ee7300a-fdaf-4b56-8b3f-17688e987e33" 信息: GET /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33 信息:[调试]成功响应客户端:"status":0,"value":"platform":"LINUX","browserName":"Android","platformVersion":"6.0.1"," webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":,"desired":"app" :"C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"sachin","app":"C:\Users\Sachin \workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"9b56dc7f0603","sessionId":"2ee7300a-fdaf-4b56-8b3f-17688e987e33" 信息: GET /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33 信息:[调试]成功响应客户端:"status":0,"value":"platform":"LINUX","browserName":"Android","platformVersion":"6.0.1"," webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":,"desired":"app" :"C:\Users\Sachin\workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"sachin","app":"C:\Users\Sachin \workspace\Practise\src\ApiDemos-debug.apk","platformName":"Android","deviceName":"9b56dc7f0603","sessionId":"2ee7300a-fdaf-4b56-8b3f-17688e987e33" 信息: POST /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33/timeouts "type":"implicit","ms":10000 信息:[调试] 将 Android 隐式等待设置为 10000 毫秒 信息:[调试]成功响应客户端:“status”:0,“value”:null,“sessionId”:“2ee7300a-fdaf-4b56-8b3f-17688e987e33” 信息: POST /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33/element "using":"xpath","value":"//android.widget.TextView[@text='偏爱']” 信息:[调试] 等待 10000 毫秒的条件 信息:[调试] 将命令推送到 appium 工作队列:["find","strategy":"xpath","selector":"//android.widget.TextView[@text='Preference']","context ":"","多个":false] info: [debug] [BOOTSTRAP] [debug] 从客户端获取数据:"cmd":"action","action":"find","params":"strategy":"xpath","selector": "//android.widget.TextView[@text='Preference']","context":"","multiple":false info: [debug] [BOOTSTRAP] [debug] 得到了 ACTION 类型的命令 信息:[debug] [BOOTSTRAP] [debug] 得到命令动作:find info: [debug] [BOOTSTRAP] [debug] 使用 XPATH 和 contextId 查找 //android.widget.TextView[@text='Preference']:multiple: false 信息:[debug] [BOOTSTRAP] [debug] 使用:UiSelector[CLASS=android.widget.TextView, INSTANCE=9] 信息:[debug] [BOOTSTRAP] [debug] 返回结果:"status":0,"value":"ELEMENT":"1" 信息:[调试]成功响应客户端:"status":0,"value":"ELEMENT":"1","sessionId":"2ee7300a-fdaf-4b56-8b3f-17688e987e33" info: POST /wd/hub/session/2ee7300a-fdaf-4b56-8b3f-17688e987e33/element/1/click "id":"1" 信息:[debug] 将命令推送到 appium 工作队列:["element:click","elementId":"1"] 信息:[调试] [BOOTSTRAP] [调试] 从客户端获取数据:"cmd":"action","action":"element:click","params":"elementId":"1" info: [debug] [BOOTSTRAP] [debug] 得到了 ACTION 类型的命令 信息:[debug] [BOOTSTRAP] [debug] 得到命令动作:点击 信息:[debug] [BOOTSTRAP] [debug] 返回结果:"status":0,"value":true 信息:[调试]成功响应客户端:“status”:0,“value”:true,“sessionId”:“2ee7300a-fdaf-4b56-8b3f-17688e987e33” 信息:
【问题讨论】:
嗨,@Sachin Kumar,你有没有解决这个问题 【参考方案1】:您可以使用以下代码行点击链接:
driver.findElementByAccessibityID("Preference").click();
【讨论】:
以上是关于点击选项在 Appium 程序中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
Sendkeys 在使用 Appium 的 Winappdriver 中不起作用