android app 自动化中虚拟键盘的处理方式(key-value)

# -*- encoding=utf8 -*-
__author__="paul"
__title__="test payment 1000 times"
__desc__='''
this is a payment auto test script for running 1000 times.
'''

from appium import webdriver
import os
import time
import unittest
import HTMLTestRunner
from  selenium.webdriver.support.ui import WebDriverWait
import random
Email='paul.wang@bd.com'
password='w111111'

def load():
    # os.system("adb install -r /Users/bd/Desktop/test_kioskapp.apk ")
    desired_caps={
       'platformName':'Android',
       'deviceName':'0123456789ABCDEF',
       'platformVersion':'5.1.1',
       'appPackage':'com.bd.paymentapp.dev',
       'appActivity':'com.bd.paymentapp.MainActivity',
       }
    driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
    # driver.implicitly_wait(10)
    return driver

global driver
driver=load()


def  login():
    driver.implicitly_wait(10)
    driver.find_element_by_android_uiautomator("new UiSelector().textStartsWith(\"Ignore\")").click()
    driver.find_element_by_android_uiautomator("new UiSelector().textStartsWith(\"bd ID\")").send_keys(Email)
    driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.View/android.view.View/android.view.View/android.view.View/android.widget.EditText[2]").send_keys(password)
    driver.find_element_by_android_uiautomator("new UiSelector().text(\"Sign In\")").click()
    driver.implicitly_wait(20)
    print("login succuss!")
    driver.find_element_by_android_uiautomator("new UiSelector().text(\"BEA1\")").click()
    driver.implicitly_wait(20)
    driver.find_element_by_android_uiautomator("new UiSelector().text(\"Sale\")").click()
    driver.implicitly_wait(3)



def  testpayment():
     ran=random.uniform(0,1000)
     randomnum=round(ran,2)
     print(randomnum)
     num=randomnum
     numstr=str(num)
     print(numstr)

     dict={}
     dict['1']=1
     dict['2']=2
     dict['3']=3
     dict['4']=4
     dict['5']=5
     dict['6']=6
     dict['7']=7
     dict['8']=8
     dict['9']=9
     dict['0']=0
     # dict['.']='.'
     print(dict)

     for i in range(0,len(numstr)):
         print(numstr[i])
         a=numstr[i]
         if a in  dict.keys():
             print(dict[a])
             b=dict[a]
             if b=='.':
                 driver.find_element_by_android_uiautomator("new UiSelector().text(\".\")").click()
             else:
                 driver.find_element_by_android_uiautomator("new UiSelector().text(\"%d\")" %(b)).click()
                 pass
     try:
         driver.find_element_by_android_uiautomator("new UiSelector().text(\"CHARGE\")").click()
         pass

     except Exception as e:
         print("Error!maybe元素element定位出现问题,请检查!")
         print(e)
         driver.get_screenshot_as_file('/document/error_png.png')
         # continue
     finally:
         pass
 
login()
for  i  in range(1,10001):
    print("==================这是第 %d 次pay操作Running==============" %(i))
    testpayment()

 

posted @ 2018-10-30 15:17  paulwang2018  阅读(1019)  评论(0编辑  收藏  举报