def buyYiSheng(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) # settingData['appPackage'] = 'com.miui.home' # settingData['appActivity'] = '.launcher.Launcher' settingData['appPackage'] = 'com.yszq.ysapp' settingData['appActivity'] = '.activity.main.LaunchActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("新股中心")').click() sleep(1) codeListPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.view.ViewGroup/android.support.v4.view.ViewPager/android.view.ViewGroup/android.widget.ScrollView/android.widget.FrameLayout/android.support.v7.widget.RecyclerView/android.widget.LinearLayout' codeList = driver.find_elements_by_xpath(codeListPath) codeListLen = len(codeList) if codeListLen < 2: buyCodePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.view.ViewGroup/android.support.v4.view.ViewPager/android.view.ViewGroup/android.widget.ScrollView/android.widget.FrameLayout/android.support.v7.widget.RecyclerView/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[6]/android.widget.TextView[3]' driver.find_element_by_xpath(buyCodePath).click() sleep(1) loginApp(driver, buyCodePath) sleep(10)
def getAErFaProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.hkbeiniu.securities' settingData['appActivity'] = '.home.activity.UPHKLauncherActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(1) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.TextView' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.TextView' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'aErFa0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def getYingLiProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.yxzq.stock' settingData['appActivity'] = '.enter.LauncherActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(5) loginYingLi(driver) driver.find_element_by_android_uiautomator('new UiSelector().text("交易")').click() sleep(2) allId = 'com.yxzq.stock:id/tv_total_asset' allNum = driver.find_element_by_id(allId).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/androidx.drawerlayout.widget.DrawerLayout/android.widget.LinearLayout/android.widget.FrameLayout[1]/android.widget.LinearLayout/android.widget.FrameLayout[2]/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.widget.LinearLayout[2]/android.view.ViewGroup[2]/android.widget.TextView[2]' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method':0, 'tableName':'yingLi0', 'allNum':allNum, 'availableNum':availableNum, } initMysql(param) driver.quit()
def getFuTuProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'cn.futu.trader' settingData['appActivity'] = '.launch.activity.LaunchActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) closeId = 'cn.futu.trader:id/close_popup_ad_view' if isExist(driver, 4, closeId): driver.find_element_by_id(closeId).click() driver.find_element_by_android_uiautomator( 'new UiSelector().text("今日盈亏")').click() sleep(1) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.TextView' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.support.v4.view.ViewPager/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.view.ViewGroup/android.widget.LinearLayout[2]/android.widget.TextView' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'fuTu0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def buyYiTaoJin(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.gfhkstore.android' settingData['appActivity'] = 'com.gf.gfglobal.HomeActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(5) initApp(driver) driver.find_element_by_android_uiautomator('new UiSelector().text("首页")').click() sleep(1) driver.find_element_by_android_uiautomator('new UiSelector().text("新股申购")').click() sleep(1) codeListPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[6]/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup' codeList = driver.find_elements_by_xpath(codeListPath) codeListLen = len(codeList) if codeListLen < 2: buyCodePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[6]/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup[1]/android.view.ViewGroup/android.view.ViewGroup/android.widget.TextView' driver.find_element_by_xpath(buyCodePath).click() sleep(1) loginApp(driver) sleep(10)
def getYaoCaiProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.brightsmart.android.etnet' settingData['appActivity'] = 'com.etnet.android.iq.Welcome' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) tradePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RadioGroup/android.widget.RadioButton[5]' driver.find_element_by_xpath(tradePath).click() sleep(1) loginYaoCai(driver) allId = 'com.brightsmart.android.etnet:id/Portfolio' allNum = driver.find_element_by_id(allId).text availableId = 'com.brightsmart.android.etnet:id/AvailPurchase' availableNum = driver.find_element_by_id(availableId).text print(allNum) print(availableNum) print(driver.page_source) print(driver.contexts)
def getTigerProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.tigerbrokers.stock' settingData['appActivity'] = '.ui.StartupActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) loginTiger(driver) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(2) if isExist(driver, 4, 'com.tigerbrokers.stock:id/btn_cancel'): driver.find_element_by_id( 'com.tigerbrokers.stock:id/btn_cancel').click() sleep(1) allId = 'com.tigerbrokers.stock:id/text_asset_total' allNum = str( float('%.2f' % (float(driver.find_element_by_id(allId).text.replace(',', '')) * 7.7))) availableId = 'com.tigerbrokers.stock:id/text_assets_value_left' availableNum = driver.find_element_by_id(availableId).text param = { 'method': 0, 'tableName': 'tiger0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def getYouYuProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.ruifusoft.finance.app' settingData['appActivity'] = 'com.ruifusoft.ui.SplashActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("我的")').click() sleep(1) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.TextView[3]' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.RelativeLayout[1]/android.widget.RelativeLayout/android.widget.TextView[2]' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'youYu0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def getDongCaiProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.eastmoney.android.lead' settingData[ 'appActivity'] = 'com.eastmoney.android.berlin.activity.MainActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) loginDongCai(driver) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(2) allId = 'com.eastmoney.android.lead:id/value_all_asset' allNum = driver.find_element_by_id(allId).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.view.ViewGroup/android.widget.ScrollView/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout[3]/android.widget.LinearLayout[2]/android.view.ViewGroup[2]/android.widget.TextView[2]' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'dongCai0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit() print(allNum) print(availableNum)
def getZhangeLeProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.lphtsccft.zlqqt2' settingData['appActivity'] = 'com.lphtsccft.zhangle.startup.SplashScreenActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(10) openZhangeLe(driver) driver.find_element_by_id('com.lphtsccft.zlqqt2:id/main_account').click() sleep(2) propertyPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.View/android.view.View/android.view.View/android.view.View[1]/android.widget.ScrollView/android.view.View/android.view.View/android.view.View/android.view.View[1]/android.view.View[5]' if isExist(driver, 2, propertyPath): driver.find_element_by_xpath(propertyPath).click() sleep(1) pwd = getPwd('zhangLe')['tradePwd'] pwdId = 'com.lphtsccft.zlqqt2:id/login_et_password' driver.find_element_by_id(pwdId).send_keys(pwd) driver.find_element_by_id('com.lphtsccft.zlqqt2:id/login_btn_login_account').click() sleep(10)
def getZunJiaProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.juniorchina.jcstock' settingData['appActivity'] = '.SplashActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(5) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(1) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.RelativeLayout/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.TextView' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.RelativeLayout/androidx.viewpager.widget.ViewPager/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.TextView[1]' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'zunJia0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def getfuYuanProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.sunline.android.sunline' settingData['appActivity'] = '.DefaultAlias' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) if isExist(driver, 4, 'com.sunline.android.sunline:id/cancel'): driver.find_element_by_id( 'com.sunline.android.sunline:id/cancel').click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(2) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.LinearLayout/android.view.ViewGroup/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.LinearLayout/android.view.ViewGroup/android.widget.ScrollView/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.TextView[2]' availableNum = numFromStr(driver.find_element_by_xpath(availablePath).text) param = { 'method': 0, 'tableName': 'fuYuan0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def operateZhaoShang(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.cmschina.stock' settingData['appActivity'] = '.InitActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(1) logPath = 'new UiSelector().text("登录查看")' if isExist(driver, 1, logPath): driver.find_element_by_android_uiautomator(logPath).click() sleep(3) print(driver.page_source) print(driver.contexts) pwdPatha = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ScrollView/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.EditText' driver.find_element_by_xpath(pwdPatha).send_keys(1)
def getChangQiaoProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'global.longbridge.app.android' settingData['appActivity'] = 'global.longbridge.android.LaunchActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("我的")').click() sleep(1) allId = 'global.longbridge.app.android:id/tv_summary_value' allNum = driver.find_element_by_id(allId).text availableId = 'global.longbridge.app.android:id/tv_cash_value' availableNum = driver.find_element_by_id(availableId).text param = { 'method': 0, 'tableName': 'changQiao0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit()
def buyJiaTou(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.kaisa.kaisafinstock' settingData['appActivity'] = '.MainActivity' desired_caps = settingData # desired_caps = { # 'platformName':'Android', # 'platformVersion':'10', # 'deviceName':'2214c691', # 'appPackage':'com.kaisa.kaisafinstock', # 'noReset':True, # 'appActivity':'.MainActivity', # } driver = webdriver.Remote('http://*****:*****@text, "认购中")]').click() # sleep(1) # if isExist(driver,'com.tigerbrokers.stock:id/btn_cancel') : # driver.find_element_by_id('com.tigerbrokers.stock:id/btn_cancel').click() # sleep(1) # driver.find_element_by_android_uiautomator('new UiSelector().text("IPO")').click() # sleep(1) # driver.find_element_by_android_uiautomator('new UiSelector().text("港股")').click() # sleep(1) # buyPath='//android.widget.TextView[contains(@text,"(' + code + '.HK)")]/parent::*/following-sibling::android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' # driver.find_element_by_xpath(buyPath).click() # sleep(1) # if not isCash: # driver.find_element_by_id('com.juniorchina.jcstock:id/iv_margin').click() # numPath = 'new UiSelector().textContains("%d")'%(stockNum) # driver.find_element_by_android_uiautomator(numPath).click() # sleep(1) driver.quit()
def getAiDeProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'io.newtype.eddid.app' settingData['appActivity'] = 'com.eddid.home.ui.activity.LauncherActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(6)
def initFuTu(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'cn.futu.trader' settingData['appActivity'] = '.launch.activity.LaunchActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) return driver
def buyDongCai(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.eastmoney.android.lead' settingData['appActivity'] = 'com.eastmoney.android.berlin.activity.MainActivity' desired_caps = settingData # desired_caps = { # 'platformName':'Android', # 'platformVersion':'10', # 'deviceName':'2214c691', # 'appPackage':'com.eastmoney.android.lead', # 'noReset':True, # 'appActivity':'com.eastmoney.android.berlin.activity.MainActivity', # } driver = webdriver.Remote('http://*****:*****@text, "认购中")]').click() sleep(1) # if isExist(driver,'com.tigerbrokers.stock:id/btn_cancel') : # driver.find_element_by_id('com.tigerbrokers.stock:id/btn_cancel').click() # sleep(1) # driver.find_element_by_android_uiautomator('new UiSelector().text("IPO")').click() # sleep(1) # driver.find_element_by_android_uiautomator('new UiSelector().text("港股")').click() # sleep(1) # buyPath='//android.widget.TextView[contains(@text,"(' + code + '.HK)")]/parent::*/following-sibling::android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' # driver.find_element_by_xpath(buyPath).click() # sleep(1) # if not isCash: # driver.find_element_by_id('com.juniorchina.jcstock:id/iv_margin').click() # numPath = 'new UiSelector().textContains("%d")'%(stockNum) # driver.find_element_by_android_uiautomator(numPath).click() # sleep(1) driver.quit()
def buyHuiLi(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.hk.poems.poemsMobileFX' settingData['appActivity'] = 'PoemsMobileTabActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) accountPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[2]/android.widget.EditText[1]' driver.find_element_by_xpath(accountPath).clear() driver.find_element_by_xpath(accountPath).click() acount = getPwd('huiLi')['account'] getKeyCode(driver, acount) sleep(1) pwdPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[2]/android.widget.EditText[2]' driver.find_element_by_xpath(pwdPath).click() pwd = getPwd('huiLi')['logInPwd'] getKeyCode(driver, pwd) sleep(1) loginPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.TabHost/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.LinearLayout[4]/android.widget.LinearLayout[1]/android.widget.Button[2]' driver.find_element_by_xpath(loginPath).click() sleep(5) confirmKeyPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.Button' driver.find_element_by_xpath(confirmKeyPath).click() sleep(1) print(driver.page_source) keyPath = '/hierarchy/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout[2]/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.ListView/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.ImageButton' driver.find_element_by_xpath(keyPath).click() sleep(1) copyKeyPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.ListView/android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' driver.find_element_by_xpath(copyKeyPath).click() sleep(1) confirmCopyPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout[2]/android.widget.Button[1]' driver.find_element_by_xpath(confirmCopyPath).click() sleep(5) acceptPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.Button[1]' driver.find_element_by_xpath(acceptPath).click() sleep(5) # driver.find_element_by_android_uiautomator('new UiSelector().text("我的")').click() # sleep(1) # driver.find_element_by_android_uiautomator('new UiSelector().text("认购新股")').click() # sleep(1) sleep(10)
def getJiaTouProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.kaisa.kaisafinstock' settingData['appActivity'] = '.MainActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(5) driver.find_element_by_android_uiautomator('new UiSelector().text("账户")').click() sleep(2)
def buyChangQiao(param): code = param['code'] codeName = param['codeName'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'global.longbridge.app.android' settingData['appActivity'] = 'global.longbridge.android.LaunchActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("市场")').click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("IPO 专区")').click() sleep(1) print(driver.page_source) codeListPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[5]/android.widget.ListView' codeList = driver.find_elements_by_xpath(codeListPath) codeListLen = len(codeList) if codeListLen < 2: codeNameTextPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[5]/android.widget.ListView/android.view.View/android.view.View/android.view.View[2]/android.view.View[2]/android.widget.TextView' codeNameText = driver.find_element_by_xpath(codeNameTextPath).text print(codeNameText) if codeName in codeNameText: codeBuyPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[5]/android.widget.ListView/android.view.View/android.view.View/android.view.View[3]/android.widget.Button' driver.find_element_by_xpath(codeBuyPath).click() sleep(1) pwd = getPwd('changQiao')['tradePwd'] getKeyCode(driver, pwd) sleep(1) numChoosePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[2]/android.view.View[2]/android.view.View[1]' driver.find_element_by_xpath(numChoosePath).click() sleep(1) if isFinancingAll: choosePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[2]/android.view.View[6]/android.widget.Button[2]' else: choosePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[2]/android.view.View[6]/android.widget.Button[1]' driver.find_element_by_xpath(choosePath).click() sleep(1) confirmPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[5]/android.view.View[3]/android.widget.Button' driver.find_element_by_xpath(confirmPath).click() sleep(1) driver.quit()
def buyFuYuan(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.sunline.android.sunline' settingData['appActivity'] = '.DefaultAlias' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) if isExist(driver, 4, 'com.sunline.android.sunline:id/cancel'): driver.find_element_by_id( 'com.sunline.android.sunline:id/cancel').click() sleep(1) tipPath = 'new UiSelector().text("我知道了")' if isExist(driver, 1, tipPath): driver.find_element_by_android_uiautomator(tipPath).click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(2) driver.find_element_by_android_uiautomator( 'new UiSelector().text("新股认购")').click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("可认购")').click() sleep(1) # contentPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout[2]/android.support.v4.view.ViewPager/android.widget.ScrollView/android.widget.ViewSwitcher/android.widget.RelativeLayout/android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout' # contentView = driver.find_element_by_xpath(contentPath) titlePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout[2]/android.support.v4.view.ViewPager/android.widget.ScrollView/android.widget.ViewSwitcher/android.widget.RelativeLayout/android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.TextView[2]' title = driver.find_element_by_xpath(titlePath).text if code in title: buyPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.view.ViewGroup/android.view.ViewGroup/android.widget.LinearLayout[2]/android.support.v4.view.ViewPager/android.widget.ScrollView/android.widget.ViewSwitcher/android.widget.RelativeLayout/android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.Button' driver.find_element_by_xpath(buyPath).click() sleep(1) pwd = getPwd('fuYuan')['tradePwd'] getKeyCode(driver, pwd) confirmId = 'com.sunline.android.sunline:id/btn_purchase' end = driver.find_element_by_id(confirmId).text print(end) sleep(20) driver.quit()
def buyAiDe(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'io.newtype.eddid.app' settingData['appActivity'] = 'com.eddid.home.ui.activity.LauncherActivity' desired_caps = settingData # desired_caps = { # 'platformName':'Android', # 'platformVersion':'10', # 'deviceName':'2214c691', # 'appPackage':'io.newtype.eddid.app', # 'noReset':True, # 'appActivity':'com.eddid.home.ui.activity.LauncherActivity', # } driver = webdriver.Remote('http://*****:*****@text,"(' + code + '.HK)")]/parent::*/following-sibling::android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' # driver.find_element_by_xpath(buyPath).click() # sleep(1) # if not isCash: # driver.find_element_by_id('com.juniorchina.jcstock:id/iv_margin').click() # numPath = 'new UiSelector().textContains("%d")'%(stockNum) # driver.find_element_by_android_uiautomator(numPath).click() # sleep(1) driver.quit()
def buyFuYuan(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.sunline.android.sunline' settingData['appActivity'] = '.DefaultAlias' desired_caps = settingData # desired_caps = { # 'platformName':'Android', # 'platformVersion':'10', # 'deviceName':'2214c691', # 'appPackage':'com.sunline.android.sunline', # 'noReset':True, # 'appActivity':'.DefaultAlias', # 'automationName':'uiautomator2' # } driver = webdriver.Remote('http://*****:*****@text,"(' + code + '.HK)")]/parent::*/following-sibling::android.widget.LinearLayout[1]/android.widget.RelativeLayout/android.widget.TextView' # driver.find_element_by_xpath(buyPath).click() # sleep(1) # if not isCash: # driver.find_element_by_id('com.juniorchina.jcstock:id/iv_margin').click() # numPath = 'new UiSelector().textContains("%d")'%(stockNum) # driver.find_element_by_android_uiautomator(numPath).click() # sleep(1) driver.quit()
def buyDongFang(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'hk.com.dfzq.dfyy' settingData['appActivity'] = 'com.tdx.Android.LaunchActivity' desired_caps = settingData # desired_caps = { # 'platformName':'Android', # 'platformVersion':'10', # 'deviceName':'2214c691', # 'appPackage':'hk.com.dfzq.dfyy', # 'noReset':True, # 'appActivity':'com.tdx.Android.LaunchActivity', # } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(5) # driver.find_element_by_android_uiautomator('new UiSelector().text("已有交易账户,马上登录")').click() path = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[2]/android.support.v4.view.ViewPager/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[3]' driver.find_element_by_xpath(path).click() sleep(1) pwd = getPwd('dongFang')['tradePwd'] driver.find_elements_by_class_name('android.widget.EditText')[1].send_keys( pwd) loginPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.support.v4.widget.DrawerLayout/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout[7]/android.view.View' driver.find_element_by_xpath(loginPath).click() sleep(1) agreePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout[3]/android.widget.LinearLayout/android.view.View[2]' driver.find_element_by_xpath(agreePath).click() sleep(6) driver.find_element_by_android_uiautomator( 'new UiSelector().text("新股申购")').click() sleep(5)
def getkey(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.guodu.token' settingData[ 'appActivity'] = 'md58eeaaf6ecd101572fa448c5104fa33aa.BrokerListActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(6) pwd = getPwd('guoDu')['tradePwd'] getKeyCode(driver, pwd) sleep(3) print(driver.page_source) driver.get_screenshot_as_file('./guodu.png') # screenshotBase64 = driver.get_screenshot_as_base64() # print(screenshotBase64) # keyLeftPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.RelativeLayout/android.widget.LinearLayout[1]/android.widget.TextView[1]' # keyLeftId = 'com.guodu.token:id/token_left_textview' # # keyLeft = driver.find_element_by_xpath(keyLeftPath).text # keyLeft = driver.find_element_by_id(keyLeftId).text # print(keyLeft) # keyRightPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.RelativeLayout/android.widget.LinearLayout[1]/android.widget.TextView[2]' # keyRightId = 'com.guodu.token:id/token_right_textview' # # keyRight = driver.find_element_by_xpath(keyRightPath).text # keyRight = driver.find_element_by_xpath(keyRightId).text # print(keyRight) # key = keyLeft + keyRight # print(key) # timePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.RelativeLayout/android.widget.LinearLayout[2]/android.widget.FrameLayout/android.widget.TextView' # timeId = 'com.guodu.token:id/sec_textview' # time = driver.find_element_by_xpath(timeId).text # # time = driver.find_element_by_xpath(timePath).text # print(time) keyListPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.ScrollView/android.widget.RelativeLayout/android.widget.LinearLayout[1]/android.widget.TextView' keyList = driver.find_elements_by_xpath(keyListPath) print(len(keyList)) for i in keyList: text = i.text print(text)
def getHuaShengTongProperty(param): settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.huasheng.stock' settingData['appActivity'] = 'com.hstong.app.launch.ui.Loading' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(6) if isExist(driver, 4, 'com.huasheng.stock:id/button_cancel'): driver.find_element_by_id( 'com.huasheng.stock:id/button_cancel').click() if isExist(driver, 4, 'com.huasheng.stock:id/btn_close'): driver.find_element_by_id('com.huasheng.stock:id/btn_close').click() driver.find_element_by_android_uiautomator( 'new UiSelector().text("交易")').click() sleep(1) if isExist(driver, 3, 'android.widget.EditText'): pwd = getPwd('huaShengTong')['tradePwd'] driver.find_element_by_class_name('android.widget.EditText').send_keys( pwd) driver.find_element_by_id('com.huasheng.stock:id/btn_login').click() sleep(5) allPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.viewpager.widget.ViewPager/android.view.ViewGroup/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout/android.widget.RelativeLayout/android.widget.TextView[2]' allNum = driver.find_element_by_xpath(allPath).text availablePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.viewpager.widget.ViewPager/android.view.ViewGroup/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout/android.widget.FrameLayout[1]/android.view.ViewGroup/android.widget.LinearLayout[2]/android.widget.TextView[2]' availableNum = driver.find_element_by_xpath(availablePath).text param = { 'method': 0, 'tableName': 'huaShengTong0', 'allNum': allNum, 'availableNum': availableNum, } initMysql(param) driver.quit() print(allNum) print(availableNum)
def buyAiDe(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'io.newtype.eddid.app' settingData['appActivity'] = 'com.eddid.home.ui.activity.LauncherActivity' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app(); sleep(3) driver.launch_app(); sleep(6) tipId = 'io.newtype.eddid.app:id/tv_notice_dialog_no_reminder' if isExist(driver, 4, tipId): driver.find_element_by_id(tipId).click() sleep(1) driver.find_element_by_android_uiautomator('new UiSelector().text("新股中心")').click() sleep(5) contentPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View[9]/android.view.View/android.view.View/android.view.View[1]/android.view.View/android.view.View' contentView = driver.find_elements_by_xpath(contentPath) contentLen = len(contentView) -2 for i in range(contentLen): index = str(i + 2) titlePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View[9]/android.view.View/android.view.View/android.view.View[1]/android.view.View/android.view.View[' + index +']/android.view.View[1]' itemTitle = driver.find_element_by_xpath(titlePath).text if code in itemTitle: buyPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View[9]/android.view.View/android.view.View/android.view.View[1]/android.view.View/android.view.View[' + index +']/android.view.View[2]' driver.find_element_by_xpath(buyPath).click() sleep(2) confirmPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.RelativeLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View/android.view.View[6]/android.widget.Button' confirmBtn = driver.find_element_by_xpath(confirmPath).text print(confirmBtn) sleep(5) driver.quit()
def buyXueYing(param): code = param['code'] isCash = param['isCash'] stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.snowballfinance.android' settingData['appActivity'] = 'com.xueqiu.android.view.WelcomeActivityAlias' desired_caps = settingData driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) driver.close_app() sleep(3) driver.launch_app() sleep(5) driver.find_element_by_android_uiautomator( 'new UiSelector().text("行情")').click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("港股")').click() sleep(1) driver.find_element_by_android_uiautomator( 'new UiSelector().text("新股认购")').click() sleep(1) codeListPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[4]/android.view.View/android.widget.GridView/android.view.View' codeList = driver.find_elements_by_xpath(codeListPath) codeListLen = len(codeList) if codeListLen < 3: codeChoosePath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View/android.view.View[4]/android.view.View/android.widget.GridView/android.view.View[2]/android.view.View[1]/android.view.View[2]' driver.find_element_by_xpath(codeChoosePath).click() sleep(1) codeConfirmPath = '/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.view.ViewGroup/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View/android.view.View[13]/android.widget.Button[2]' driver.find_element_by_xpath(codeConfirmPath).click() sleep(1) sleep(10)
def buyDongCai(param): code = param['code'] isCash = param['isCash'] stockNum = param['num'] # stockNumVal = param['numVal'] isFinancingAll = param['isFinancingAll'] isCashAll = param['isCashAll'] settingIndex = param['setIndex'] settingData = getSetting(settingIndex) settingData['appPackage'] = 'com.eastmoney.android.lead' settingData[ 'appActivity'] = 'com.eastmoney.android.berlin.activity.MainActivity' desired_caps = settingData driver = webdriver.Remote('http://*****:*****@text, "认购中")]').click() sleep(1) codeText = 'new UiSelector().text("' + code + '")' codeParentView = driver.find_element_by_android_uiautomator( codeText).parent codeParentView.find_element_by_android_uiautomator( 'new UiSelector().text("认购")').click() sleep(1) pwd = getPwd('dongCai')['tradePwd'] print(pwd) getKeyCode(driver, pwd) sleep(3) if isCash: cashText = 'new UiSelector().text("现金")' driver.find_element_by_android_uiautomator(cashText).click() amountChooseUi = 'new UiSelector().text("请选择认购股数")' driver.find_element_by_android_uiautomator(amountChooseUi).click() sleep(1) amountFlag = True amountCheckIndex = '' while amountFlag: amountViewPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup' amountView = driver.find_elements_by_xpath(amountViewPath) amountLen = len(amountView) - 1 print(amountLen) for i in range(amountLen): index = str(i + 1) print(index) if isCashAll: amountOutText = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[' + index + ']/android.view.ViewGroup/android.widget.TextView[2]' if isExist(driver, 2, amountOutText): amountFlag = False amountCheckIndex = str(i) break elif isCash: amountTextPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[' + index + ']/android.view.ViewGroup/android.widget.TextView' amountText = driver.find_element_by_xpath(amountTextPath).text if stockNum in amountText: amountFlag = False amountCheckIndex = str(i + 1) break elif isFinancingAll: testUi = 'new UiSelector().textContains("不足")' if isExist(amountView[i], 1, testUi): test = amountView[i].find_element_by_android_uiautomator( 'new UiSelector().textContains("不足")').text print(test) amountFlag = False amountCheckIndex = str(i) break else: amountTextPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[' + index + ']/android.view.ViewGroup/android.widget.TextView' amountText = driver.find_element_by_xpath(amountTextPath).text if stockNum in amountText: amountFlag = False amountCheckIndex = str(i + 1) break if amountFlag: driver.swipe(200, 1760, 200, 1610, 300) sleep(1) amountCheckPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup[2]/android.view.ViewGroup/android.widget.ScrollView/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[' + amountCheckIndex + ']/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup' print(amountCheckPath) driver.find_element_by_xpath(amountCheckPath).click() sleep(1) agreePath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[1]/android.view.ViewGroup/android.view.ViewGroup[1]' driver.find_element_by_xpath(agreePath).click() sleep(1) confirmPath = '/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup/android.view.ViewGroup[2]/android.widget.TextView' driver.find_element_by_xpath(confirmPath).click() sleep(1) submitUi = 'new UiSelector().textContains("确认认购")' driver.find_element_by_android_uiautomator(submitUi).click() sleep(1) pwd = getPwd('dongCai')['tradePwd'] print(pwd) getKeyCode(driver, pwd) sleep(1) endUi = 'new UiSelector().text("确认")' if isExist(driver, 1, endUi): driver.find_element_by_android_uiautomator(endUi).click() sleep(3) driver.quit()