1
0

test_deepcoin_control.py 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. import logging
  2. import unittest
  3. from plat.deepcoin_control import DeepCoinControl
  4. logging.basicConfig(level=logging.INFO, force=True) # 设置日志级别
  5. class MyTestCase(unittest.TestCase):
  6. def setUp(self):
  7. self.pc = DeepCoinControl('Deepcoin')
  8. self.pc.connect_adb('127.0.0.1:64079')
  9. def test_to_top_swipe(self):
  10. """
  11. 滑动到顶部
  12. """
  13. self.pc.to_top_swipe()
  14. def test_to_next_swipe(self):
  15. """
  16. 滑动到下一屏
  17. """
  18. self.pc.to_next_swipe()
  19. def test_save_point(self):
  20. """
  21. 保存坐标
  22. """
  23. self.pc.save_point()
  24. def test_slider_baozhengjin(self):
  25. """
  26. 保证金滑块
  27. """
  28. self.pc.slider_baozhengjin_kaicang()
  29. def test_click_kaicang(self):
  30. """
  31. 开仓
  32. """
  33. self.pc.click_kaicang()
  34. def test_click_pingchang(self):
  35. """
  36. 平仓
  37. """
  38. self.pc.click_pingchang()
  39. def test_select_weituo_xianjia(self):
  40. """
  41. 选择限价委托
  42. """
  43. self.pc.select_kaicang_weituo_xianjia()
  44. def test_click_price(self):
  45. """
  46. 点击价格
  47. """
  48. self.pc.click_price_red()
  49. def test_f1(self):
  50. """
  51. f1 开仓界面,仓位滑竿百分比(30-60)
  52. """
  53. # self.pc.click_kaicang()
  54. # self.pc.slider_baozhengjin_kaicang()
  55. self.pc.event_f1()
  56. def test_f2(self):
  57. """
  58. f2 确认开仓,开多 限价职中间数值
  59. 检查撤销限价委托单
  60. """
  61. # self.pc.click_kaicang()
  62. #
  63. # self.pc.select_kaicang_weituo_xianjia()
  64. # self.pc.d.sleep(0.1)
  65. #
  66. # self.pc.click_price_red()
  67. #
  68. # # self.pc.text_xiadan_shuliang(3)
  69. # self.pc.slider_baozhengjin_kaicang()
  70. #
  71. # self.pc.click_mairu_kaiduo()
  72. self.pc.event_f2()
  73. def test_f3(self):
  74. """
  75. F3 平仓界面 平空,仓位滑竿百分比(90-100)确认开仓,限价职中间数值
  76. """
  77. # self.pc.to_top_swipe(sleep=0.2)
  78. # self.pc.click_pingchang()
  79. # self.pc.slider_baozhengjin_pingcang(offset=1)
  80. self.pc.event_f3()
  81. def test_f4(self):
  82. """
  83. F4 确认平仓 平多 限价取中间数值 检查撤销限价委托单
  84. """
  85. # self.pc.to_top_swipe(sleep=0.2)
  86. # self.pc.click_pingchang()
  87. # self.pc.select_kaicang_weituo_xianjia()
  88. # self.pc.click_price_green()
  89. # # self.pc.text_xiadan_shuliang(3)
  90. # self.pc.slider_baozhengjin_pingcang(offset=1)
  91. # self.pc.click_maichu_pingduo()
  92. self.pc.event_f4()
  93. def test_f5(self):
  94. """
  95. F5 开仓界面胂仓位滑竿百分比(30-60)
  96. """
  97. # self.pc.to_top_swipe(sleep=0.2)
  98. # self.pc.click_kaicang()
  99. # self.pc.slider_baozhengjin_kaicang()
  100. self.pc.event_f5()
  101. def test_f6(self):
  102. """
  103. F6 确认开仓, 开空 限价值中间数值
  104. 检查撤销限价委托单
  105. """
  106. # self.pc.to_top_swipe(sleep=0.1)
  107. # self.pc.click_kaicang()
  108. # self.pc.select_kaicang_weituo_xianjia()
  109. # self.pc.click_price_red()
  110. # # self.pc.text_xiadan_shuliang(3)
  111. # self.pc.click_maichu_kaikong()
  112. self.pc.event_f6()
  113. def test_f7(self):
  114. """
  115. F7 平仓界面二仓位滑竿百分比(90-100)
  116. """
  117. # self.pc.to_top_swipe(sleep=0.2)
  118. # self.pc.click_pingchang()
  119. # self.pc.slider_baozhengjin_pingcang(offset=2)
  120. self.pc.event_f7()
  121. def test_f8(self):
  122. """
  123. F8 确认平仓, 平空 限价职中间数值
  124. 检查撤销限价委托单
  125. """
  126. # self.pc.to_top_swipe()
  127. #
  128. # self.pc.d.sleep(0.1)
  129. #
  130. # self.pc.click_pingchang()
  131. #
  132. # self.pc.click_price_red()
  133. #
  134. # # self.pc.text_xiadan_shuliang(3)
  135. # self.pc.click_maichu_kaikong()
  136. #
  137. # self.pc.click_mairu_pingkong()
  138. self.pc.event_f8()
  139. def test_jiao_yi(self):
  140. x, y = self.pc.btn_jiao_yi()
  141. logging.info(f"交易坐标: ({x},{y})")
  142. def test_mairu_kaiduo(self):
  143. x, y = self.pc.btn_mairu_kaiduo()
  144. logging.info(f"买入开多: ({x},{y})")
  145. def test_chichang(self):
  146. self.pc.d.xpath()
  147. def test_gengdan(self):
  148. self.pc.to_next_swipe()
  149. x, y = self.pc.btn_gengdan()
  150. logging.info(f"跟单坐标: ({x},{y})")
  151. def test_weituo(self):
  152. self.pc.to_next_swipe()
  153. x, y = self.pc.btn_weituo()
  154. logging.info(f"委托坐标: ({x},{y})")
  155. def test_gendan_click(self):
  156. self.pc.click_xpath('//*[starts-with(@content-desc, "跟单(")]')
  157. def test_yijianchedan_click(self):
  158. """
  159. 一键撤单
  160. """
  161. self.pc.to_next_swipe()
  162. self.pc.click_yijian_chedan()
  163. def test_jiaoyi_select(self):
  164. element = self.pc.d.xpath('//*[@content-desc="交易"]').get()
  165. # 获取元素位置
  166. bounds = element.info['bounds']
  167. # 截图
  168. screenshot = self.pc.d.screenshot()
  169. # 转换为PIL图像
  170. from PIL import Image
  171. img = Image.fromarray(screenshot)
  172. # 获取元素中心点颜色
  173. x = (bounds['left'] + bounds['right']) // 2
  174. y = (bounds['top'] + bounds['bottom']) // 2
  175. return img.getpixel((x, y))
  176. def test_slider_baozhengjin_pingcang(self):
  177. """
  178. 平仓情况 保证金滑块
  179. """
  180. self.pc.slider_baozhengjin_pingcang()
  181. def test_exists(self):
  182. # b = self.pc.check_element_exists('//*[starts-with(@content-desc, "全部委托(")]')
  183. # logging.info("是否存在: %s", b)
  184. b = self.pc.check_element_exists('//*[@content-desc="限价委托"]')
  185. logging.info("是否存在: %s", b)
  186. def test_element(self):
  187. element = self.pc.d.xpath('//*[@content-desc="交易"]').get()
  188. logging.info("交易按钮: %s", element.info)
  189. def test_input(self):
  190. """
  191. 给指定xpath的输入框输入文本
  192. """
  193. self.pc.text_xiadan_shuliang(30)
  194. def test_kaichang_queren(self):
  195. """
  196. 开仓确认
  197. """
  198. x, y, _ = self.pc.get_point({
  199. "name": "btn_kaicang_queren",
  200. "desc": "开仓确认",
  201. "xpath": '//*[@content-desc="开仓确认"]'
  202. })
  203. logging.info(f"开仓确认: ({x},{y})")
  204. if self.pc.check_element_exists('//*[@content-desc="开仓确认"]'):
  205. self.pc.click_xpath('//*[@content-desc="确认"]')
  206. def test_get_appinfo(self):
  207. logging.info(f'>>>{self.pc.d.info}',)
  208. if __name__ == '__main__':
  209. unittest.main()