def stopTestApp(): print('Stop TestApp VPN...') dlg = Desktop(backend="uia").HydraTestAppShell # C:\Program Files (x86)\Hydra Test Application>taskkill /im "TestApp.exe" /f dlg.child_window(auto_id='DisconnectVpnBtn', control_type="Button").click() time.sleep(10)
class Win10CalcTest: app = None dlg = None def __init__(self): self.app = Application(backend="uia").start('calc.exe') self.dlg = Desktop(backend="uia").Calculator def keyboard_input(self, input_string): self.dlg.type_keys(input_string) def validate_result(self, expected_string): result = self.dlg.child_window(auto_id="CalculatorResults").texts()[0] if str(result) == 'Display is ' + expected_string: print(f"Result {result} is the expected one!") else: raise AssertionError(f"Result {result} is different than expected {expected_string}") def press_buttons(self, button_name): button = self.dlg.child_window(auto_id=button_name+'Button') button.click() def close_calculator(self): close_button = self.dlg.child_window(auto_id='Close') close_button.click() self.dlg.close() def verify_calculator_is_opened(self, expected): try: if expected: return self.dlg.child_window(auto_id="CalculatorResults").wait('visible', 5) else: return self.dlg.child_window(auto_id="CalculatorResults").wait_not('visible', 5) except ElementNotFoundError: if expected: return False else: return True
# Nicholas DeMello # WhatsApp Spam Bot from pywinauto import Desktop WhatsApp = Desktop(backend='uia').WhatsApp #WhatsApp.print_control_identifiers() # Find appropriate child_window target = WhatsApp.child_window(title_re="Nikita") # Use contact's name target_wrp = target.wrapper_object() msg_wrp = WhatsApp.child_window(title="Type a message ", control_type="Group").wrapper_object() target_wrp.click_input() for x in range(100): WhatsApp.type_keys("Check out my spam bot..{}".format(x)) WhatsApp.type_keys('{ENTER}')
def startTestApp(): print('Start TestApp VPN...') # app_name = 'HydraTestAppShell' backend_url = 'https://api-prod-partner-us-west-2.northghost.com/' carrier_id = 'kasperskylab' node_ip = '185.209.178.61' app = Application(backend="uia").start('TestApp.exe') dlg = Desktop(backend="uia").HydraTestAppShell # select backend URL dlg.child_window(auto_id='BackURL', control_type="ComboBox").select(backend_url) # select Carrier ID dlg.child_window(auto_id='CarrierId', control_type="ComboBox").select(carrier_id) # Login dlg.child_window(auto_id='LoginBtn', control_type="Button").click() # checking the Login state state = dlg.child_window(auto_id='LoginState', control_type="Edit").texts() print(state[0]) dlg.child_window(auto_id='CredentialBtn', control_type="Button").click() for i in range(5): # delete all 5 received server's ip if dlg.child_window(best_match='REMOVE'+str(i), control_type="Button").exists(): dlg.child_window(best_match='REMOVE'+str(i), control_type="Button").click() # add new server IP address dlg.child_window(best_match='Add server', control_type="Button").click() dlg.child_window(auto_id='ProviderServerTextBox', control_type="Edit").set_text(node_ip) # applying new ip dlg.child_window(auto_id='ApplyCredentialBtn', control_type="Button").click() # CONNECT dlg.child_window(auto_id='ConnectVpnBtn', control_type="Button").click() #check VPN State time.sleep(5) state_vpn = dlg.child_window(auto_id='VpnConnectState', control_type="Text").texts() print(state_vpn[0]) # check if IP address is changed correctly dlg.child_window(auto_id='IPApiBtn', control_type="Button").click() # checking the VL IP address time.sleep(5) my_ip = dlg.child_window(auto_id='addressLbl', control_type="Edit").texts() print(my_ip) return my_ip
from pywinauto import Desktop, mouse notifyWindow = Desktop(backend="uia").window(title_re='New notification') notifyWindow.wait('visible', timeout=20) print(notifyWindow.print_control_identifiers()) mailNotification = notifyWindow.child_window( title_re='New notification from Mail') rect = mailNotification.rectangle() mouse.click(coords=(rect.left // 2 + rect.right // 2, rect.top // 2 + rect.bottom // 2 - 50))
class Calc: # LOCATORS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! def jeden(self): return self.window_name.child_window(title="1") def dwa(self): return self.window_name.child_window(title="2") def trzy(self): return self.window_name.child_window(title="3") def cztery(self): return self.window_name.child_window(title="4") def piec(self): return self.window_name.child_window(title="5") def szesc(self): return self.window_name.child_window(title="6") def siedem(self): return self.window_name.child_window(title="7") def osiem(self): return self.window_name.child_window(title="8") def dziewiec(self): return self.window_name.child_window(title="9") def zero(self): return self.window_name.child_window(title="0") def plus(self): return self.window_name.child_window(title="+") def rownasie(self): return self.window_name.child_window(title="Wykonaj") def wyczysc(self): return self.window_name.child_window(title="wyczyść") def wyczysc_his(self): return self.window_name.child_window(title="Wyczyść") def med(self): return self.window_name.child_window(title="Med") def p_nawias(self): return self.window_name.child_window(title=")") # END OF LOCATORS !!!!!!!!!!!!!!!!!!!!!!!!! # parameterized constructor def __init__(self, window_name): self.window_name = Desktop(backend="win32").window(best_match=window_name) def get_result(self): result = self.window_name.child_window(auto_id="tbWynik").texts() assert result[0] == result[1], ">>>>>>>>>>>>>>> somethig wrong with result - check get_result mehod in Calc.py" # if result[0] != result[1]: # print(">>>>>>>>>>>>>>> somethig wrong with result - check get_result mehod in Calc.py") # print(result[0], " 1= ", result[1]) result = result[0] return result def get_ids(self, level): self.window_name.print_control_identifiers(depth=level) # click number (0-9) def click_1(self): self.jeden().click() def click_2(self): self.dwa().click() def click_3(self): self.trzy().click() def click_4(self): self.cztery().click() def click_5(self): self.piec().click() def click_6(self): self.szesc().click() def click_7(self): self.siedem().click() def click_8(self): self.osiem().click() def click_9(self): self.dziewiec().click() def click_0(self): self.zero().click() def click_plus(self): self.plus().click() def click_equal(self): self.rownasie().click() def click_wyczysc(self): self.wyczysc().click() def click_wyczysc_his(self): self.wyczysc_his().click() def click_med(self): self.med().click() def click_p_nawias(self): self.p_nawias().click() def click_rownasie(self): self.rownasie().click() def add_2(self, num1, num2): self.click_wyczysc() send_keys(num1) self.click_plus() send_keys(num2) self.click_rownasie() return self.get_result() def med_2(self, num1, num2): self.click_wyczysc() self.click_med() send_keys(num1) send_keys(";") send_keys(num2) self.click_p_nawias() self.click_rownasie() return self.get_result() def med_5(self, num1, num2, num3, num4, num5): self.click_wyczysc() self.click_med() send_keys(num1) send_keys(";") send_keys(num2) send_keys(";") send_keys(num3) send_keys(";") send_keys(num4) send_keys(";") send_keys(num5) self.click_p_nawias() self.click_rownasie() return self.get_result()
# coding=utf-8 from subprocess import Popen from pywinauto import Desktop from pc_test_tool import * Popen(r"D:\Program Files\DuoLaBao\bin\BasePay.exe", shell=True) window = Desktop(backend="uia").window(title=u'哆啦宝') # window.print_ctrl_ids() # window.print_control_identifiers() # a=window.criteria window.child_window(auto_id="devSetTable").print_ctrl_ids() b = window.window() # 设备类型选择按钮 click_action(window, left=410, top=10) # 意锐小盒-基础版 click_action(window, left=380, top=40) # 设备类型选择按钮 click_action(window, left=410, top=10) # 意锐小盒-基础版 click_action(window, left=380, top=60) # pyautogui.press('shift') # 设备类型选择按钮 click_action(window, left=410, top=10) # 意锐小盒-基础版 click_action(window, left=380, top=80)
class Calc: # LOCATORS !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! def jeden(self): return self.window_name.Jeden def dwa(self): return self.window_name.Dwa def trzy(self): return self.window_name.Trzy def cztery(self): return self.window_name.Cztery def piec(self): return self.window_name.Pięć def szesc(self): return self.window_name.Sześć def siedem(self): return self.window_name.Siedem def osiem(self): return self.window_name.Osiem def dziewiec(self): return self.window_name.Dziewięć def zero(self): return self.window_name.Zero def plus(self): return self.window_name.Plus def rownasie(self): return self.window_name.child_window(title="Równa się", control_type="Button") # END OF LOCATORS !!!!!!!!!!!!!!!!!!!!!!!!! # parameterized constructor def __init__(self, window_name): self.window_name = Desktop(backend="uia").window(best_match=window_name) def set_button_by_title(self, button_title): self.window_name.child_window(title=button_title, control_type="Button").click() def set_button(self, button_name): try: self.window_name.child_window(title=button_name, control_type="Button").click() except Exception as e1: logging.exception(e1) try: self.window_name.child_window(auto_id=button_name, class_name="Button").click() except Exception as e: print("!!!!!!!No such button!!!!!!!!!") logging.exception(e) def get_result(self): result = self.window_name.child_window(auto_id="CalculatorResults", control_type="Text").texts() result = ''.join(result) result = result.strip("Wyświetlana wartość to ") result = result.replace(u'\xa0', u'') return result def get_ids(self, level): self.window_name.print_control_identifiers(depth=level) # click number (0-9) def click_1(self): self.jeden().click() def click_2(self): self.dwa().click() def click_3(self): self.trzy().click() def click_4(self): self.cztery().click() def click_5(self): self.piec().click() def click_6(self): self.szesc().click() def click_7(self): self.siedem().click() def click_8(self): self.osiem().click() def click_9(self): self.dziewiec().click() def click_0(self): self.zero().click() def click_plus(self): self.plus().click() def click_equal(self): self.rownasie().click() def add_2(self, num1, num2): send_keys(num1) self.click_plus() send_keys(num2) self.rownasie().click() return self.get_result()