/// <summary> /// /// </summary> public static void KeepSessionLive() { try { var request = new RestRequest("session/{sessionId}", Method.GET); request.AddUrlSegment("sessionId", sessionId); var capabilities = RequestSender.Send <Result_CreateSession>(request); Loger.Debug("AppiumSession->KeepSessionLive-[capabilities]:"); Loger.Debug(capabilities.ToJson()); if (capabilities == null || capabilities.Status != 0) { //尝试重新获取sessionId,3次 for (int i = 0; i < 3; i++) { sessionId = GetSessionId(); if (!string.IsNullOrWhiteSpace(sessionId)) { //成功获取sessionId后退出循环 return; } } //尝试重新获取sessionId失败,3次 } } catch (Exception) { } }
/// <summary> /// /// </summary> /// <param name="sessionId"></param> public static void Quit(string sessionId) { var request = new RestRequest("session/{sessionId}", Method.DELETE); request.AddUrlSegment("sessionId", sessionId); try { var response = RequestSender.Send <object>(request); Loger.Error($"Quit---> {sessionId}"); } catch (Exception) { } }
/// <summary> /// /// </summary> /// <returns></returns> public static string GetSessionId() { try { var request = new RestRequest("session", Method.POST); request.AddJsonBody(InitDeviceConfig.capsinfo); var session = RequestSender.Send <Result_CreateSession>(request); return(session.SessionId); } catch (Exception) { return(string.Empty); } }
/// <summary> /// 查找元素 /// </summary> /// <param name="sessionId"></param> public static string FindElement(string sessionId, string usingType, string value) { var request = new RestRequest("session/{sessionId}/element", Method.POST); request.AddUrlSegment("sessionId", sessionId); request.AddJsonBody(new { @using = usingType, value = value }); try { var response = RequestSender.Send <Result_FindElement>(request); return(response.Value.ELEMENT); } catch (Exception) { return(string.Empty); } }
/// <summary> /// /// </summary> /// <param name="sessionId"></param> /// <param name="element"></param> /// <returns></returns> public static void DeviceBack(string sessionId, string element) { var request = new RestRequest("/session/{sessionId}/appium/device/press_keycode", Method.POST); request.AddUrlSegment("sessionId", sessionId); request.AddJsonBody(new { keycode = 4, metastate = string.Empty, flags = string.Empty }); try { var response = RequestSender.Send <object>(request); //点击后暂停一下,等待设备界面响应 Thread.Sleep(500); } catch (Exception) { } }
/// <summary> /// 设置元素值 /// </summary> /// <param name="sessionId"></param> public static bool SetElementVal(string sessionId, string element, string[] text) { var request = new RestRequest("session/{sessionId}/element/{element}/value", Method.POST); request.AddUrlSegment("sessionId", sessionId); request.AddUrlSegment("element", element); request.AddJsonBody(new { value = text }); try { var response = RequestSender.Send <Result_SendKeys>(request); return(response != null && response.Status == 0); } catch (Exception) { return(false); } }
/// <summary> /// 点击元素 /// </summary> /// <param name="sessionId"></param> public static bool Clicklement(string sessionId, string element) { var request = new RestRequest("session/{sessionId}/element/{element}/click", Method.POST); request.AddUrlSegment("sessionId", sessionId); request.AddUrlSegment("element", element); try { var response = RequestSender.Send <Result_ClickElement>(request); //点击后暂停一下,等待设备界面响应 Thread.Sleep(500); return(response != null && response.Value); } catch (Exception) { return(false); } }