首页 文章

Appium无法在Android设备上识别和滚动元素

提问于
浏览
1

我在android中的时钟应用程序上尝试了一段appium自动化代码,但我的代码往往会跳过滚动逻辑 . 我也尝试使用findelement()和gettext()来识别元素,但仍然不成功 . 以下是代码:

package com.test.Clock; 
import org.testng.annotations.Test; 
import io.appium.java_client.AppiumDriver; 
import io.appium.java_client.MobileElement; 
import io.appium.java_client.PerformsTouchActions; 
import io.appium.java_client.TouchAction; 
import io.appium.java_client.android.AndroidDriver; 
import org.testng.annotations.BeforeClass; 
import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.HashMap; 
import java.util.concurrent.TimeUnit; 
import org.openqa.selenium.By; 
import org.openqa.selenium.Dimension; 
import org.openqa.selenium.JavascriptExecutor; 
import org.openqa.selenium.NoSuchFrameException; 
import org.openqa.selenium.Point; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.interactions.touch.TouchActions; 
import org.openqa.selenium.remote.DesiredCapabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 
import org.openqa.selenium.support.ui.WebDriverWait; 
import org.testng.annotations.AfterClass; 

public class Clock { 

static WebDriver driver; 
//static AndroidDriver driver; 

@BeforeClass public void setUp() throws MalformedURLException{ DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("BROWSER_NAME", "Android"); capabilities.setCapability("VERSION", "7.0"); capabilities.setCapability("deviceName","IFZDSCVCKJUWRSOV"); capabilities.setCapability("platformName","Android"); capabilities.setCapability("--session-override",true); capabilities.setCapability("noReset",true); capabilities.setCapability("appPackage", "com.android.deskclock"); capabilities.setCapability("appActivity","com.android.deskclock.AlarmClock"); //driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities); 
driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); 
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS); 
} 

@Test public void testCal() throws InterruptedException { System.out.println("inside test"); 
WebElement createAlarm=driver.findElement(By.id("amigo:id/amigo_icon0")); //WebElement createAlarm=driver.findElement(By.xpath("//android.widget.Button[@text='Create']")); 
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS); createAlarm.click(); 
// WebElement plus=driver.findElement(By.id("amigo:id/amigo_numberpicker_input")); //plus.click(); 
// driver.swipe(6, -188, 0, 0, 2); 
try { 
WebElement frame1=driver.findElement(By.id("com.android.deskclock:id/add_alarm_activity_hourNumber")); 
driver.switchTo().frame(frame1);
} 
catch (NoSuchFrameException e) { 
System.out.println(e.getMessage());
} 
Thread.sleep(2000); 
WebElement gettime=driver.findElement(By.id("com.android.deskclock:id/add_alarm_activity_hourNumber")); 
Thread.sleep(2000); 
System.out.println(gettime.getText()); 
JavascriptExecutor js = (JavascriptExecutor) driver; 
HashMap<String, Double> swipeObject = new HashMap<String, Double>(); System.out.println(swipeObject); 
swipeObject.put("startX", 3.0); 
System.out.println(swipeObject); 
swipeObject.put("startY", -183.8); 
System.out.println(swipeObject); 
swipeObject.put("endX", 0.022); 
System.out.println(swipeObject); 
swipeObject.put("endY", 0.02); 
System.out.println(swipeObject); 
swipeObject.put("duration", 2.0); 
//HashMap[] params = { swipeObject }; 
js.executeScript("mobile: scroll", swipeObject); 
System.out.println(js); 
/*JavascriptExecutor js = (JavascriptExecutor) driver; 
HashMap<String, String> scrollObject = new HashMap<String, String>(); scrollObject.put("direction", "up"); 
js.executeScript("mobile: scroll", scrollObject);*/ 
Thread.sleep(2000); 
WebElement equalTo=driver.findElement(By.id("com.android.deskclock:id/add_alarm_save")); equalTo.click(); 
} 
@AfterClass public void teardown(){ 
//close the app driver.quit();
}
}

以下是appium服务器日志:

使用args调用AppiumDriver.createSession():[{“ - session-override”:true,“BROWSER_NAME”:“Android”,“VERSION”:“7.0”,“appActivity”:“com.android.deskclock.AlarmClock “ ”appPackage“: ”com.android.deskclock“, ”设备名称“: ”IFZDSCVCKJUWRSOV“, ”NORESET“:真实的, ”platformName“: ”Android“ 的},空,{ ”desiredCapabilities“:{” - 会话级覆盖 “:真实的,” BROWSER_NAME “:” 机器人”, “版本”: “7.0”, “appActivity”: “com.android.deskclock.AlarmClock”, “appPackage”: “com.android.deskclock”, “设备名称” :“IFZDSCVCKJUWRSOV”,“noReset”:true,“platformName”:“Android”},“firstMatch”:[{“platformName”:“android”}]}] [BaseDriver]事件'newSessionRequested'登录于1528276642225(14:格林威治标准时间05:30(印度标准时间)47:22 [Appium]无法解析W3C功能:'deviceName'不能为空 . 回归到JSONWP协议 . [Appium] W3C功能中缺少的JSONWP所需功能提供了以下功能:[“ - session-override”,“BROWSER_NAME”,“VERSION”,“appActivity”,“appPackage”,“deviceName”,“ NORESET”, “platformName” . 回归到JSONWP协议 . [Appium]创建新的AndroidDriver(v2.6.0)会话[Appium]功能:[Appium] --session-override:true [Appium] BROWSER_NAME:Android [Appium] VERSION:7.0 [Appium] appActivity:com.android.deskclock . AlarmClock [Appium] appPackage:com.android.deskclock [Appium] deviceName:IFZDSCVCKJUWRSOV [Appium] noReset:true [Appium] platformName:Android [BaseDriver]使用MJSONWP创建会话所需的功能:{“ - session-override”:true, ... [BaseDriver]提供了以下功能,但appium无法识别: - session-override,BROWSER_NAME,VERSION . [BaseDriver]使用会话ID创建的会话:7118f268-78fb-4b3e-91fa-f46f119d6dba [AndroidDriver]获取Java版本[AndroidDriver] Java版本是:1.8.0_101 [ADB]检查adb是否存在[ADB]使用adb.exe C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe [AndroidDriver]检索设备列表[ADB]试图找到连接的Android设备[ADB]获取连接的设备... [ADB] 1个设备已连接[AndroidDriver]使用设备:IFZDSCVCKJUWRSOV [ADB]检查adb是否存在[ADB]使用来自C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb的adb.exe . exe [ADB]将设备ID设置为IFZDSCVCKJUWRSOV [AndroidDriver]未列出应用程序文件,而是直接在设备上运行com.android.deskclock [AndroidDriver]检查设备上是否存在软件包[ADB]进行连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCV CKJUWRSOV shell pm list packages com.android.deskclock'[AndroidDriver]启动Android会话[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV等待设备'[ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb . exe -P 5037 -s IFZDSCVCKJUWRSOV shell echo ping'[AndroidDriver]将设置推送到设备... [ADB]获取io.appium.settings的安装状态[ADB]连接设备... [ADB] 1设备(s )已连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell pm list packages io.appium.settings'[ADB] App is安装[ADB]获取'io.appium.settings'[ADB]的包信息获取连接的设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell dumpsys包io.app ium.settings'[ADB]检查aapt是否存在[ADB]使用来自C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ build-tools \ 28.0.0-rc2 \ aapt.exe [ADB]的aapt.exe ]已安装的'io.appium.settings'软件包不需要升级('2.3.0'> ='2.3.0')[ADB]连接设备... [ADB] 1个设备已连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell ps'[AndroidDriver] io.appium.settings已在运行 . 没有需要重置其权限 . [ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell getprop ro.build.version.sdk'[ADB]当前设备属性'ro.build.version.sdk':24 [ADB]设备API级别:24 [ADB]连接设备... [ADB] 1设备(s)已连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell appops set io.appium.settings android:mock_location allow' [AndroidDriver] setDeviceLanguageCountry需要语言或国家/地区 . [AndroidDriver]语言:'undefined'和国家:'undefined'[Logcat]启动logcat capture [AndroidDriver]将解锁帮助应用程序推送到设备... [ADB]获取io.appium.unlock的安装状态[ADB]获取连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell pm list packages安装了io.appium.unlock'[ADB]应用程序[ADB]获取'io.appium.unlock'的包信息[ADB]连接设备... [ADB]连接1个设备[ADB]运行'C :\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell dumpsys package io.appium.unlock'[ADB]检查aapt是否存在[ADB]使用aapt . 来自C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ build-tools \ 28.0.0-rc2 \ aapt.exe [ADB]安装的'io.appium.unlock'软件包不需要升级('2.0 .0'> ='2.0.0')[ADB]获取设备平台版本[ADB]获取连接设备es ... [ADB] 1个设备连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell getprop ro . build.version.release'[ADB]当前设备属性'ro.build.version.release':7.0 [ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell wm size'[ADB]连接设备... [ADB] 1个设备已连接[ADB]正在运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell getprop ro.product.model'[ADB]当前设备属性'ro.product.model' :S6s [ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell getprop ro.product.manufacturer'[ADB]当前设备属性'ro.product.manufacturer':GIONEE [AndroidDriver]没有应用程序发送,而不是par唱包/活动[AndroidDriver]没有应用程序功能 . 假设它已经在设备上[AndroidBootstrap]正在观看bootstrap disconnect [ADB]转发系统:4724到设备:4724 [ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb .exe -P 5037 -s IFZDSCVCKJUWRSOV forward tcp:4724 tcp:4724'[UiAutomator]启动UiAutomator [UiAutomator]移动到'开始'状态[UiAutomator]解析uiautomator jar [UiAutomator]找到jar名称:'AppiumBootstrap.jar'[ADB运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV push'C:\ Program Files(x86)\ Appium \ resources \ app \ node_modules \ appium-android-bootstrap \ bootstrap \ bin \ AppiumBootstrap.jar'/ data / local / tmp /'[ADB]试图杀死所有uiautomator进程[ADB]使用uiautomator获取所有进程[ADB]获取连接设备... [ADB ] 1个设备已连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell ps'[ADB]未找到uuutoutoor进程至kill,continue ... [UiAutomator]启动UIAutomator [ADB]用args创建ADB子进程:[“ - P”,5037,“ - s”,“IFZDSCVCKJUWRSOV”,“shell”,“uiautomator”,“runtest”,“ AppiumBootstrap.jar”, “ - C”, “io.appium.android.bootstrap.Bootstrap”, “ - E”, “PKG”, “com.android.deskclock”, “ - E”, “disableAndroidWatchers”,假的, “-e”,“acceptSslCerts”,false] [UiAutomator]移动到状态'在线'[AndroidBootstrap] Android自举套接字现已连接[ADB]连接设备... [AndroidBootstrap] [BOOTSTRAP LOG] [debug]已注册崩溃观察家 . [AndroidBootstrap] [BOOTSTRAP LOG] [debug]客户端连接[ADB] 1个设备连接[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell dumpsys窗口'[AndroidDriver]屏幕已经解锁,什么都不做[ADB]设备API级别:24 [ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell启动-W -n com.android.deskclock / com.android.deskclock.AlarmClock -S'[Appium]新的AndroidDriver会话创建成功,会话7118f268-78fb-4b3e-91fa- f46f119d6dba添加到主会话列表[BaseDriver]事件'newSessionStarted'记录在1528276661138(格林威治标准时间0530 14:47:41(印度标准时间))[W3C]使用driver.createSession()结果响应客户端:{“platform”:“ LINUX”, “webStorageEnabled”:假的, “takesScreenshot”:真实的, “javascriptEnabled”:真实的, “databaseEnabled”:假的, “networkConnectionEnabled”:真实的, “locationContextEnabled”:假的, “警告”:{}, “期望”: { “--session-覆盖”:真实的, “BROWSER_NAME”: “机器人”, “版本”: “7.0”, “appActivity”: “com.android.deskclock.AlarmClock”, “appPackage”:“com.android . DeskClock中 “ ”设备名称“: ”IFZDSCVCKJUWRSOV“, ”NORESET“:真实的, ”platformName“:” A ndroid “},” - 会话覆盖 “:真实的,” BROWSER_NAME “:” 机器人 “ ”版本“: ”7.0“, ”appActivity“: ”com.android.deskclock.AlarmClock“, ”appPackage“:” COM .android.deskclock “ ”设备名称“: ”IFZDSCVCKJUWRSOV“, ”NORESET“:真实的, ”platformName“: ”机器人“, ”deviceUDID“: ”IFZDSCVCKJUWRSOV“, ”platformVersion“: ”7.0“, ”deviceScreenSize“:” 1080×1920 “,”deviceModel“:”S6s“,”deviceManufacturer“:”GIONEE“} [HTTP] < - POST / wd / hub / session 200 18916 ms - 866 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / timeouts [HTTP] {“type”:“implicit”,“ms”:15000} [W3C]错误的参数:BadParametersError:参数不正确 . 我们想要“W3C协议期望任何脚本,pageLoad或隐式设置”并且您发送{“type”:“implicit”,“ms”:15000} [HTTP] < - POST / wd / hub / session / 7118f268 -78fb-4b3e-91fa-f46f119d6dba / timeouts 400 3 ms - 5166 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element [HTTP] {“using” :“id”,“value”:“amigo:id / amigo_icon0”} [W3C]用args调用AppiumDriver.findElement():[“id”,“amigo:id / amigo_icon0”,“7118f268-78fb-4b3e-91fa” -f46f119d6dba“] [BaseDriver]此请求的有效定位器策略:xpath,id,类名,可访问性ID,-android uiautomator [BaseDriver]条件等待最多0 ms [AndroidBootstrap]向android发送命令:{”cmd“: “行动”, “行动”: “发现”, “PARAMS”:{ “策略”: “ID”, “选择”: “朋友:ID / amigo_icon0”, “语境”: “”, “多”:假} } [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“find”,“params”:{“strategy”:“id”,“selector”: “amigo:id / amigo_icon0”,“context”:“”,“multiple”:false}} [ AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到ACTION类型的命令[AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:find [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用'ID查找'amigo:id / amigo_icon0' 'with contextId:''multiple:false [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = amigo:id / amigo_icon0] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{ “status”:0,“value”:{“ELEMENT”:“1”}} [AndroidBootstrap]从bootstrap收到命令结果[W3C]用driver.findElement()结果响应客户端:{“ELEMENT”:“1” } [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element 200 1496 ms - 87 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268- 78fb-4b3e-91fa-f46f119d6dba / timeouts [HTTP] {“type”:“implicit”,“ms”:3000} [W3C]错误的参数:BadParametersError:参数不正确 . 我们想要“W3C协议期望任何脚本,pageLoad或隐式设置”并且您发送{“type”:“implicit”,“ms”:3000} [HTTP] < - POST / wd / hub / session / 7118f268 -78fb-4b3e-91fa-f46f119d6dba / timeouts 400 2 ms - 5164 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element / 1 /单击[HTTP] {“id”:“1”} [W3C]用args调用AppiumDriver.click():[“1”,“7118f268-78fb-4b3e-91fa-f46f119d6dba”] [AndroidBootstrap]向android发送命令:{“cmd” :“action”,“action”:“element:click”,“params”:{“elementId”:“1”}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{“cmd”:“ action“,”action“:”element:click“,”params“:{”elementId“:”1“}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到类型ACTION的命令[AndroidBootstrap] [BOOTSTRAP LOG] [ debug]得到命令动作:单击[AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:0,“value”:true} [AndroidBootstrap]从bootstrap接收命令结果[W3C]用驱动程序响应客户端 . 点击()结果:true [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element / 1 / click 200 350 ms - 76 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element [HTTP] {“using”:“id”,“value”:“com.android.deskclock:id / add_alarm_activity_hourNumber”} [W3C]调用AppiumDriver.findElement ()with args:[“id”,“com.android.deskclock:id / add_alarm_activity_hourNumber”,“7118f268-78fb-4b3e-91fa-f46f119d6dba”] [BaseDriver]此请求的有效定位器策略:xpath,id,class name ,accessibility id,-android uiautomator [BaseDriver]条件等待最多0 ms [AndroidBootstrap]向android发送命令:{“cmd”:“action”,“action”:“find”,“params”:{“strategy” :“id”,“selector”:“com.android.deskclock:id / add_alarm_activity_hourNumber”,“context”:“”,“multiple”:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据: { “CMD”: “行动”, “行动”: “发现”, “PARAMS”:{ “策略”: “ID”, “选择”: “com.android.deskclock:ID / add_alarm_activity_hourNumber” “context”:“”,“multiple”:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]获得类型ACTION的命令[AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:find [AndroidBootstrap] [BOOTSTRAP LOG ] [debug]使用带有contextId的'ID'查找'com.android.deskclock:id / add_alarm_activity_hourNumber':''multiple:false [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = com .android.deskclock:id / add_alarm_activity_hourNumber] [AndroidBootstrap]从bootstrap接收命令结果[W3C]用driver.findElement()结果响应客户端:{“ELEMENT”:“2”} [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element 200 1884 ms - 87 [HTTP] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:0,“value”:{“ELEMENT “:”2“}} [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / frame [HTTP] {”id“:{”ELEMENT“:”2“,” element-6066-11e4-a52e-4f735466cecf“:”2“}} [W3C]用args调用AppiumDriver.setFrame():[ {“ELEMENT”:“2”,“element-6066-11e4-a52e-4f735466cecf”:“2”},“7118f268-78fb-4b3e-91fa-f46f119d6dba”] [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / frame 404 2 ms - 3078 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element [HTTP] { “using”:“id”,“value”:“com.android.deskclock:id / add_alarm_activity_hourNumber”} [W3C]用args调用AppiumDriver.findElement():[“id”,“com.android.deskclock:id / add_alarm_activity_hourNumber“,”7118f268-78fb-4b3e-91fa-f46f119d6dba“] [BaseDriver]此请求的有效定位器策略:xpath,id,类名,辅助功能ID,-android uiautomator [BaseDriver]条件等待最多0 ms [AndroidBootstrap ]向android发送命令:{“cmd”:“action”,“action”:“find”,“params”:{“strategy”:“id”,“selector”:“com.android.deskclock:id / add_alarm_activity_hourNumber “,”context“:”“,”multiple“:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{”cmd“:”action“,”action“:”find“,”params “:{“战略“:”id“,”selector“:”com.android.deskclock:id / add_alarm_activity_hourNumber“,”context“:”“,”multiple“:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]获取类型命令ACTION [AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:find [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用带有contextId:''倍数的'ID'查找'com.android.deskclock:id / add_alarm_activity_hourNumber': false [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = com.android.deskclock:id / add_alarm_activity_hourNumber] [AndroidBootstrap]从bootstrap接收命令结果[W3C]用driver.findElement响应客户端( )结果:{“ELEMENT”:“3”} [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element 200 21 ms - 87 [HTTP] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:0,“value”:{“ELEMENT”:“3”}} [HTTP] - > GET / wd / hub / session / 7118f268-78fb-4b3e-91fa -f46f119d6dba / element / 3 / text [HTTP] {} [W3C]调用AppiumDriver.getT ext()with args:[“3”,“7118f268-78fb-4b3e-91fa-f46f119d6dba”] [AndroidBootstrap]向android发送命令:{“cmd”:“action”,“action”:“element:getText”, “params”:{“elementId”:“3”}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{“cmd”:“action”,“action”:“element:getText”,“params “:{”elementId“:”3“}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到类型ACTION的命令[AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:getText [AndroidBootstrap]收到的命令结果from bootstrap [W3C]使用driver.getText()结果响应客户端:“”[HTTP] < - GET / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element / 3 / text 200 24 ms - 74 [HTTP] [AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{“status”:0,“value”:“”} [HTTP] - > POST / wd / hub / session / 7118f268-78fb- 4b3e-91fa-f46f119d6dba /执行[HTTP] {“script”:“mobile:scroll”,“args”:[{“duration”:2,“endY”:0.02,“endX”:0.022,“startY”: - 183.8,“startX”:3}]} [W3C]用args调用AppiumDriver.execute():[“mobile:scroll”,[{“duration”:2,“endY”:0.02,“endX”:0.022,“ startY“: - 183.8,”startX“:3}],”7118f268-78fb-4b3e-91fa-f46f119d6dba“] [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba /执行404 4 ms - 5796 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element [HTTP] {“using”:“id”,“value”: “com.android.deskclock:id / add_alarm_save”} [W3C]用args调用AppiumDriver.findElement():[“id”,“com.android.deskclock:id / add_alarm_save”,“7118f268-78fb-4b3e-91f a-f46f119d6dba“] [BaseDriver]此请求的有效定位器策略:xpath,id,类名,辅助功能ID,-android uiautomator [BaseDriver]条件等待最多0 ms [AndroidBootstrap]向android发送命令:{”cmd“ “行动”, “行动”: “发现”, “PARAMS”:{ “策略”: “ID”, “选择”: “com.android.deskclock:ID / add_alarm_save”, “语境”: “”,” multiple“:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{”cmd“:”action“,”action“:”find“,”params“:{”strategy“:”id“ ,“selector”:“com.android.deskclock:id / add_alarm_save”,“context”:“”,“multiple”:false}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到类型为ACTION的命令[AndroidBootstrap] [ BOOTSTRAP LOG] [debug]得到命令动作:find [AndroidBootstrap] [BOOTSTRAP LOG] [debug]使用带有contextId的'ID'查找'com.android.deskclock:id / add_alarm_save':''multiple:false [AndroidBootstrap] [ BOOTSTRAP LOG] [debug]使用:UiSelector [INSTANCE = 0,RESOURCE_ID = com.android.deskclock:id / add_alarm_save] [AndroidBootst rap [BOOTSTRAP LOG] [debug]返回结果:{“status”:0,“value”:{“ELEMENT”:“4”}} [AndroidBootstrap]从bootstrap接收命令结果[W3C]用驱动程序响应客户端 . findElement()结果:{“ELEMENT”:“4”} [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element 200 28 ms - 87 [HTTP] [HTTP] - > POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element / 4 /单击[HTTP] {“id”:“4”} [W3C]使用args调用AppiumDriver.click(): [“4”,“7118f268-78fb-4b3e-91fa-f46f119d6dba”] [AndroidBootstrap]向android发送命令:{“cmd”:“action”,“action”:“element:click”,“params”:{“ elementId“:”4“}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据:{”cmd“:”action“,”action“:”element:click“,”params“:{”elementId“ :“4”}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到ACTION类型的命令[AndroidBootstrap] [BOOTSTRAP LOG] [debug]得到命令动作:点击[AndroidBootstrap] [BOOTSTRAP LOG] [debug]返回结果:{ “status”:0,“value”:true} [AndroidBoot从] bootstrap接收命令结果[W3C]用driver.click响应客户端()结果:true [HTTP] < - POST / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba / element / 4 /单击200 355 ms - 76 [HTTP] [HTTP] - > DELETE / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba [HTTP] {} [W3C]使用args调用AppiumDriver.deleteSession():[ “7118f268-78fb-4b3e-91fa-f46f119d6dba”] [BaseDriver]事件'quitSessionRequested'登录于1528276671521(格林威治标准时间0530(印度标准时间)14:47:51))[Appium]删除会话7118f268-78fb-4b3e-91fa-f46f119d6dba从我们的主会话列表[AndroidDriver]关闭Android驱动程序[ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell am force-stop com.android.deskclock'[ADB]按HOME按钮[ADB]连接设备... [ADB] 1个设备已连接[ ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell输入keyevent 3'[AndroidBootstrap]向android发送命令:{“cmd”:“shutdown”} [AndroidBootstrap] [BOOTSTRAP LOG] [debug]从客户端获取数据: {“cmd”:“shutdown”} [AndroidBootstrap]从bootstrap接收命令结果[UiAutomator]关闭UiAutomator [UiAutomator]移动到状态'stop'[UiAutomator] UiAutomator正常关闭[UiAutomator]移动到'停止'状态[ADB试图杀死所有uiautomator进程[ADB]使用uiautomator获取所有进程[ADB]连接设备... [ADB]连接1个设备[ADB]运行'C:\ Users \ PAKALI \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell ps'[ADB]没有发现uiautomator进程被杀,继续...... [UiAutomator]移动到状态'停止'[Logcat]停止logcat捕获[ADB]获取连接设备... [ADB]已连接1个设备[ADB]正在运行'C:\ Users {用户名![应用程序的屏幕截图] 1} \ AppData \ Local \ Android \ Sdk \ platform-tools \ adb.exe -P 5037 -s IFZDSCVCKJUWRSOV shell am force-stop io.appium.unlock'[AndroidDriver]不清理生成的文件 . 如果需要,添加clearSystemFiles功能 . [BaseDriver]事件'quitSessionFinished'记录在1528276676716(格林威治标准时间0530 14:47:56(印度标准时间))[W3C]收到回复:null [W3C]但是删除会话,所以不返回[W3C]响应带有驱动程序的客户端 . deleteSession()result:null [HTTP] < - DELETE / wd / hub / session / 7118f268-78fb-4b3e-91fa-f46f119d6dba 200 5196 ms - 76

1 回答

相关问题