def setUp(self): self.driver = WebDriver(desired_caps, server_url) self.driver.init() self.driver.maximize_window() self.driver.get( 'https://sso.jiupaicn.com/sso/action/goLogin?retUrl=http%3A%2F%2Fjphao.jiupaicn.com%2Findex.php%3F' )
class ToDoListsTests(unittest.TestCase): def setUp(self): desired_caps = { 'platformName': 'ios', 'platformVersion': '9.3', 'deviceName': 'iPhone 6', 'automationName': 'XCUITest', 'app': '/Users/shriamin/Library/Developer/Xcode/DerivedData/todolist-dbyycwgvumhydzfgqtlgfohtsljz/Build/Products/Debug-iphonesimulator/todolist.app', } #self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps) server_url = {'hostname': '127.0.0.1','port': 3456} self.driver = WebDriver(desired_caps, server_url) self.driver.init() def test_simple_example(self): # Test Actions Here self.driver.find_element_by_accessibility_id('ADD NEW').click() self.driver.find_element_by_accessibility_id('task name').send_keys("eat") self.driver.find_element_by_accessibility_id('description').send_keys("gujarati food works") self.driver.find_element_by_accessibility_id('ADD TASK').click() def tearDown(self): #self.driver.quit() pass
def setUp(self): self.driver = WebDriver(self.desired_caps(), self.server_url()) self.driver.init() self.case_id = self.get_col(0) # case id 列 self.preset = self.get_col(2) # 预置条件列 self.using = self.get_col(5) # 查找元素方式列 self.value = self.get_col(6) # 元素列 self.exp = self.get_col(7) # 预期结果列
def setUpClass(cls): try: cls.driver = WebDriver(setting.desired_caps, setting.server_url) cls.driver.init() except: cls.driver = WebDriver(setting.desired_caps_sim, setting.server_url) cls.driver.init()
def _make_ff(self, remote, desired_capabilites, profile_dir): if not profile_dir: profile_dir = FIREFOX_PROFILE_DIR profile = webdriver.FirefoxProfile(profile_dir) if remote: browser = self._create_remote_web_driver( webdriver.DesiredCapabilities.FIREFOX, remote, desired_capabilites, profile) else: browser = webdriver.Firefox(firefox_profile=profile) return browser
class MacacaTest(unittest.TestCase): def setUp(self): self.driver = WebDriver(desired_caps, server_url) self.driver.init() def tearDown(self): self.driver.quit() def test_macaca(self): el = self.driver.element() el.click() time.sleep(2)
def run_server(self, device, port): r = RunServer(port) r.start() while not self.is_running(port): sleep(1) server_url = { 'hostname': "localhost", 'port': port, } driver = WebDriver(device, server_url) driver.init() DRIVER.set_driver(driver) DRIVER.set_OS(device.get("platformName")) driver = DRIVER.driver run_test(driver)
class ConnectDevice(object): def __init__(self): self.platform_name = target_platform_name self.package = target_package self.driver = None @warnings.simplefilter('ignore', ResourceWarning) @retry(stop_max_attempt_number=3) def connect_device(self): server_url = { 'hostname': hostname, 'port': port } platform_name = self.target_platform_name.capitalize() if platform_name == 'Android': package = self.package desired_caps = get_device_info(platform_name, package) elif platform_name == 'Ios': package = self.package desired_caps = get_device_info(platform_name.swapcase(), package) else: pass self.driver = WebDriver(desired_caps, server_url) print("retry connecting server ...") wd = self.driver.init() return wd
def connect_device(self): server_url = { 'hostname': hostname, 'port': port } platform_name = self.target_platform_name.capitalize() if platform_name == 'Android': package = self.package desired_caps = get_device_info(platform_name, package) elif platform_name == 'Ios': package = self.package desired_caps = get_device_info(platform_name.swapcase(), package) else: pass self.driver = WebDriver(desired_caps, server_url) print("retry connecting server ...") wd = self.driver.init() return wd
def open_application(self, server_url, alias=None, **kwargs): """Opens a new application to given Macaca server. Capabilities of macaca server, Android and iOS, Please check https://macacajs.github.io/wd.py/quickstart.html && https://macacajs.github.io/zh/desired-caps | *Option* | *Man.* | *Description* | | remote_url | Yes | macaca server url | | alias | no | alias | Examples: | Open Application | http://localhost:3456/wd/hub | alias=Myapp1 | platformName='iOS' | platformVersion='10.2' | deviceName='iPhone 5s' | app='your.app' | """ desired_caps = kwargs application = WebDriver(desired_caps, str(server_url)) application.init() self._debug('Opened application with session id %s' % application.session_id) return self._cache.register(application, alias)
def run_cases(): cs = CaseStrategy() cases = cs.collect_cases(suite=False) server_url = {'hostname': 'localhost', 'port': 3456} driver = WebDriver(remote_info_511(), server_url) # driver = WebDriver(remote_info_510(), server_url) driver.init() # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) login_status = LoginStatus() login_status.set_status(False) try: time.sleep(5) print('start cases') RunCase().run(cases) print('end') except AssertionError as e: raise e # quit driver driver.quit()
def _run_cases(server_url, run, cases, index): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '/' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('app: %s', run.get_device()['app']) log.i('reuse: %s\n', run.get_device()['reuse']) # log.i('autoAcceptAlerts: %s', run.get_device()['autoAcceptAlerts']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # login_status = LoginStatus() # login_status.set_status(False) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) base_page.set_index(index) try: # run cases run.run(cases) except AssertionError as e: log.e('AssertionError, %s', e) # quit driver driver.quit()
def _run_cases(server_url, run, cases): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('package: %s\n', run.get_device()['package']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) # skip wizard if skip_wizard_to_home(): # run cases run.run(cases) # quit driver driver.quit()
def setUp(self): desired_caps = { 'platformName': 'ios', 'platformVersion': '9.3', 'deviceName': 'iPhone 6', 'automationName': 'XCUITest', 'app': '/Users/shriamin/Library/Developer/Xcode/DerivedData/todolist-dbyycwgvumhydzfgqtlgfohtsljz/Build/Products/Debug-iphonesimulator/todolist.app', } #self.driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps) server_url = {'hostname': '127.0.0.1','port': 3456} self.driver = WebDriver(desired_caps, server_url) self.driver.init()
class Jiupai(unittest.TestCase): def setUp(self): self.driver = WebDriver(desired_caps, server_url) self.driver.init() self.driver.maximize_window() self.driver.get( 'https://sso.jiupaicn.com/sso/action/goLogin?retUrl=http%3A%2F%2Fjphao.jiupaicn.com%2Findex.php%3F' ) def tearDown(self): self.driver.quit() @ddt.data(*login_data) def test_login(self, login_data): login(self.driver, login_data['username'], login_data['password']) time.sleep(2) self.assertEqual( self.driver.element_by_class_name(login_data['class']).text, login_data['text'])
def start_connect(self): try: log_info('Connect to server') if self.driver == 'appium': from appium import webdriver self.instance = webdriver.Remote( command_executor='{}:{}/wd/hub'.format( self.url, self.port), desired_capabilities=self.desired_capabilities) if self.timeout: self.instance.implicitly_wait(int(self.timeout)) else: self.instance.implicitly_wait(10) else: from macaca import WebDriver self.instance = WebDriver( url='{}:{}/wd/hub'.format(self.url, self.port), desired_capabilities=self.desired_capabilities) self.instance.init() return self.instance except Exception as e: log_error('Unable to connect to the server, please reconnect!', False) if self.platformName.lower() == "android": if self.driver == 'appium': os.system('adb uninstall io.appium.uiautomator2.server') os.system( 'adb uninstall io.appium.uiautomator2.server.test') else: os.system('adb uninstall com.macaca.android.testing') os.system('adb uninstall com.macaca.android.testing.test') os.system('adb uninstall xdf.android_unlock') self.stop_server() raise e
def init(): port = int(sys.argv[1]) udid = sys.argv[2] report_path = str(sys.argv[3]) session = sys.argv[4] server_url = { 'hostname': '127.0.0.1', 'port': port, } log = Log() log.set_logger(udid, report_path + '\\' + 'client.log') driver = WebDriver('', server_url) driver.attach(session) # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(report_path) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver)
def drivers(): """ 根据全局平台参数返回对应的驱动 :return: WebDriver对象 """ desired_caps = {} if globalvar.platform == 'ios': # 把iOS字典的键/值对更新到desired_caps里 desired_caps.update(globalvar.ios_capabilities) elif globalvar.platform == 'android': # 把Android字典的键/值对更新到desired_caps里 desired_caps.update(globalvar.android_capabilities) else: pass # 修改字典中已有键/值对 desired_caps['app'] = globalvar.global_path + 'driver/' + desired_caps['app'] # 配置所需的功能和服务器URL的WebDriver对象 driver = WebDriver(desired_caps, globalvar.server_url) return driver
def _create_remote_web_driver(self, capabilities_type, remote_url, desired_capabilities=None, profile=None): '''parses the string based desired_capabilities if neccessary and creates the associated remote web driver''' desired_capabilities_object = capabilities_type.copy() if type(desired_capabilities) in (str, unicode): desired_capabilities = self._parse_capabilities_string( desired_capabilities) desired_capabilities_object.update(desired_capabilities or {}) return webdriver.Remote( desired_capabilities=desired_capabilities_object, command_executor=str(remote_url), browser_profile=profile)
def _run_cases(server_url, run, cases): log = Log() # Windows # log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') # MacOS log.set_logger(run.get_device()['udid'], run.get_path() + '/' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) # log.i('package: %s\n', run.get_device()['package']) log.i('bundleId: %s\n', run.get_device()['bundleId']) log.i('autoAcceptAlerts: %s\n', run.get_device()['autoAcceptAlerts']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) login_status = LoginStatus() login_status.set_status(False) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) try: # skip wizard # if not into home page will raise AssertionError skip_wizard_to_home() # run cases run.run(cases) except AssertionError as e: log.e('AssertionError, %s', e) # quit driver driver.quit()
def drive(server_url, run): log = Log() log.set_logger(run.get_device()['udid'], run.get_path() + '\\' + 'client.log') log.i('platformName: %s', run.get_device()['platformName']) log.i('udid: %s', run.get_device()['udid']) log.i('package: %s\n', run.get_device()['package']) log.i('macaca server port: %d\n', run.get_port()) # init driver driver = WebDriver(run.get_device(), server_url) driver.init() # set cls.path, it must be call before operate on any page path = ReportPath() path.set_path(run.get_path()) # set cls.driver, it must be call before operate on any page base_page = BasePage() base_page.set_driver(driver) while True: cmd = input("Please input run or exit:").lower() if cmd == 'run': print('Run run.py') print(os.system('python run.py %s %s %s %s' % (run.get_port(), run.get_device()['udid'], run.get_path(), driver.session_id ) ) ) elif cmd == 'exit': print('Good Bye') break # quit driver driver.quit()
def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(5)
class AppP2b(unittest.TestCase): def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(5) def tearDown(self): # end the session self.driver.quit() def buy_zhuanbei(self): driver = self.driver driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/welcome_button").click() sleep(5) driver.element_by_id( "com.richfinancial.pujiaosuo:id/tv_title_view_left").click() sleep(4) driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").clear() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").send_keys( "18811446922") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/password").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/password").send_keys("0422wxl") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/login").click() sleep(4) cancel = driver.elements_by_class_name("android.widget.Button") cancel[0].click() sleep(3) inv = driver.element_by_name("投资") inv.click() sleep(4) #赚呗 #driver.element_by_id("com.richfinancial.pujiaosuo:id/tab_all_investing_product_list_middle").click() driver.element_by_name("赚呗").click() sleep(3) driver.touch('drag', { 'fromX': 520, 'fromY': 1000, 'toX': 520, 'toY': 700 }) sleep(2) driver.element_by_name("赚呗 14期").click() sleep(4) driver.element_by_name("立即投资").click() sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_pay_value").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/invest_pay_value" ).send_keys("1400") sleep(2) #e-Bai #driver.element_by_id("com.richfinancial.pujiaosuo:id/cb_ebei").click() #sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_mothed").click() sleep(2) driver.element_by_name("建设银行(尾号5512)").click() sleep(2) #driver.element_by_id("com.richfinancial.pujiaosuo:id/xieyi_check").click() driver.element_by_name("我同意").click() sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/pay_now").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/code").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/code").send_keys( "abcd") sleep(2) driver.element_by_name("获取").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/msmcode").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/msmcode").send_keys("123456") sleep(2) driver.element_by_name("我同意").click() sleep(2) #OK driver.element_by_id("com.richfinancial.pujiaosuo:id/next").click() sleep(45) #确定 driver.element_by_id( "com.richfinancial.pujiaosuo:id/btn_complete").click() sleep(3) driver.element_by_name("我的").click() sleep(4) driver.element_by_name("优贝赚呗投资记录").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf2 = "./" + now + "_017_inv_records_macaca_R.png" driver.save_screenshot(sf2) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/item_title").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf1 = "./" + now + "_017_inv_detail_macaca_R.png" driver.save_screenshot(sf1) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_name("账户余额(元)").click() sleep(4) driver.element_by_name("查看余额明细").click() sleep(3) now = time.strftime("%Y-%m-%d %H_%M_%S") sf3 = "./" + now + "_017_recharge_records_macaca_R.png" driver.save_screenshot(sf3) sleep(3) """
class ServerUtils(object): def __getattr__(self, item): try: return self.__getattribute__(item) except: return None def __init__(self, driver, desired_capabilities): if driver.lower() in ['appium', 'macaca']: self.driver = driver.lower() else: self.driver = 'appium' desired_capabilities_dict = {} for key, value in desired_capabilities.items(): if self.driver == 'appium': if key in ['package', 'appPackage']: key = 'appPackage' elif key in ['activity', 'appActivity']: key = 'appActivity' else: if key in ['package', 'appPackage']: key = 'package' elif key in ['activity', 'appActivity']: key = 'activity' desired_capabilities_dict[key] = value log_info(' {}: {}'.format(key, value)) object.__setattr__(self, key, value) self.url = 'http://127.0.0.1' self.instance = None self.desired_capabilities = desired_capabilities_dict self.port = self.__get_device_port() def __exec_command(self, cmd): pipe = subprocess.Popen("%s" % cmd, stdout=subprocess.PIPE, shell=True) return pipe.stdout.readlines() def __check_port_is_used(self, port): p = platform.system() if p == 'Windows': sys_command = "netstat -ano|findstr %s" % port pipe = subprocess.Popen(sys_command, stdout=subprocess.PIPE, shell=True) out, error = pipe.communicate() if str(out, encoding='utf-8') != "" and "LISTENING" in str( out, encoding='utf-8'): pid = re.search(r"\s+LISTENING\s+(\d+)\r\n", str(out, encoding='utf-8')).groups()[0] return True, pid else: return False, None elif p == 'Darwin' or p == 'Linux': sys_command = "lsof -i:%s" % port pipe = subprocess.Popen(sys_command, stdout=subprocess.PIPE, shell=True) for line in pipe.stdout.readlines(): if "LISTEN" in str(line, encoding='utf-8'): pid = str(line, encoding='utf-8').split()[1] return True, pid return False, None else: log_error( 'The platform is {} ,this platform is not support.'.format(p)) def __get_device_port(self): for i in range(10): port = random.randint(3456, 9999) result, pid = self.__check_port_is_used(port) if result: continue else: log_info('get port return {}'.format(port)) return port return 3456 def __print_appium_log(self): log_tag = False while True: out = self.pipe.stdout.readline() out = str(out, encoding='utf-8').strip() if 'Appium REST http interface' in out: log_tag = True log_info(out) elif out: if not log_tag: log_info(out) else: break def start_server(self): try: log_info('Start the server') self.stop_server() if self.driver == 'appium': self.pipe = subprocess.Popen( 'appium -a {} -p {} --session-override --log-level info'. format('127.0.0.1', self.port), stdout=subprocess.PIPE, shell=True) thread = threading.Thread(target=self.__print_appium_log) thread.start() time.sleep(5) else: ob = subprocess.Popen('macaca server -p {}'.format(self.port), stdout=subprocess.PIPE, shell=True) for out_ in ob.stdout: out_ = str(out_, encoding='utf-8') log_info(out_.strip()) if 'Macaca server started' in out_: break except Exception as e: raise e def start_connect(self): try: log_info('Connect to server') if self.driver == 'appium': from appium import webdriver self.instance = webdriver.Remote( command_executor='{}:{}/wd/hub'.format( self.url, self.port), desired_capabilities=self.desired_capabilities) if self.timeout: self.instance.implicitly_wait(int(self.timeout)) else: self.instance.implicitly_wait(10) else: from macaca import WebDriver self.instance = WebDriver( url='{}:{}/wd/hub'.format(self.url, self.port), desired_capabilities=self.desired_capabilities) self.instance.init() return self.instance except Exception as e: log_error('Unable to connect to the server, please reconnect!', False) if self.platformName.lower() == "android": if self.driver == 'appium': os.system('adb uninstall io.appium.uiautomator2.server') os.system( 'adb uninstall io.appium.uiautomator2.server.test') else: os.system('adb uninstall com.macaca.android.testing') os.system('adb uninstall com.macaca.android.testing.test') os.system('adb uninstall xdf.android_unlock') self.stop_server() raise e def stop_server(self): try: if self.platformName.lower() == "android": os.system('adb -s {} shell am force-stop {}'.format( self.udid, self.package if self.package else self.appPackage)) elif self.platformName.lower() == "ios": pass if self.instance: self.instance.quit() if self.port is not None: result, pid = self.__check_port_is_used(self.port) if result: p = platform.system() if p == "Windows": sys_command = "taskkill /pid %s -t -f" % pid info = subprocess.check_output(sys_command) log_info(str(info, encoding='GB2312')) elif p == "Darwin" or p == "Linux": sys_command = "kill -9 %s" % pid os.system(sys_command) except Exception as e: raise e
class IOSSDK(unittest.TestCase,t.Methods,xl.Case_xls): def setUp(self): self.driver = WebDriver(self.desired_caps(), self.server_url()) self.driver.init() self.case_id = self.get_col(0) # case id 列 self.preset = self.get_col(2) # 预置条件列 self.using = self.get_col(5) # 查找元素方式列 self.value = self.get_col(6) # 元素列 self.exp = self.get_col(7) # 预期结果列 def tearDown(self): self.driver.quit() def test_101(self): u'''查看用户协议''' sleep(10) self.driver.element(self.using[51], self.value[51]).click() # 用户协议 sleep(5) el = self.driver.element(self.using[52], self.value[52]) #协议内容 print unicode('测试结果: %s' % el.text.encode('utf-8')) print unicode('预期结果: %s' % self.exp[51].encode('utf-8')) self.dy_Equal(self.driver, unicode(el.text), self.exp[0], self.case_id[51]) # 断言 def test_102(self): u'''用户协议界面,返回登录界面''' sleep(10) self.driver.element(self.using[53], self.value[53]).click() # 用户协议 sleep(3) self.driver.element(self.using[54], self.value[54]).click() #返回 sleep(1) el = self.driver.element(self.using[55], self.value[55]) #忘记密码 print unicode('测试结果: %s' % el.text.encode('utf-8')) print unicode('预期结果: %s' % self.exp[53].encode('utf-8')) self.dy_Equal(self.driver, unicode(el.text), self.exp[0], self.case_id[53]) # 断言
# @Author : l7 # @File : demo_macaca.py # @Software : PyCharm # 首先启动macaca server # C:\Users\mrl>macaca server --verbose # C:\Users\mrl\AppData\Roaming\npm\node_modules\macaca-chrome\node_modules\ # macaca-chromedriver\exec,目录下的chromedriver更换成语浏览器匹配的版本,并重命名为2.45,否则程序自动下载一个 from macaca import WebDriver desired_caps = { 'browserName': 'Chrome', # Electon, Safari(iOS). 'platformName': 'Desktop', # iOS, Android. # 'platformVersion': '*', 'autoAcceptAlerts': True } server_url = 'http://confluence.yoyosys.com.cn:8090' driver = WebDriver(desired_caps) driver.init() # driver.maximize_window() driver.get(server_url) driver.wait_for_element('xpath', '//input[@name="os_username"]').send_keys("li.qi") driver.wait_for_element('id', 'os_password').send_keys("yoyo1234567") driver.wait_for_element('id', 'loginButton').click() driver.close() # # # import unittest # from macaca import WebDriver # from time import sleep #
class AppP2b(unittest.TestCase): def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(4) def tearDown(self): # end the session self.driver.quit() def buy_zhuanbei(self): driver = self.driver driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/welcome_button").click() sleep(5) driver.element_by_id( "com.richfinancial.pujiaosuo:id/tv_title_view_left").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").clear() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").send_keys( "13816032863") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/password").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/password").send_keys("0422wxl") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/login").click() sleep(5) cancel = driver.elements_by_class_name("android.widget.Button") cancel[0].click() sleep(3) inv = driver.element_by_name("投资") inv.click() sleep(4) #赚呗 #driver.element_by_id("com.richfinancial.pujiaosuo:id/tab_all_investing_product_list_middle").click() driver.element_by_name("赚呗").click() sleep(3) driver.touch('drag', { 'fromX': 520, 'fromY': 1000, 'toX': 520, 'toY': 700 }) sleep(2) driver.element_by_name("赚呗 14期").click() sleep(4) driver.element_by_name("立即投资").click() sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_pay_value").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/invest_pay_value" ).send_keys("9800") sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_mothed").click() sleep(2) #driver.element_by_name("薪智宝(元)").click() driver.touch('tap', {'x': 520, 'y': 1400}) sleep(2) #driver.element_by_id("com.richfinancial.pujiaosuo:id/xieyi_check").click() driver.element_by_name("我同意").click() sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/pay_now").click() sleep(5) driver.element_by_name("我的").click() sleep(4) driver.element_by_name("优贝赚呗投资记录").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf2 = "./" + now + "_008_inv_records_macaca_R.png" driver.save_screenshot(sf2) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/item_title").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf3 = "./" + now + "_008_inv_detail_macaca_R.png" driver.save_screenshot(sf3) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) #scroll to the tail page #driver.swipe(520,1700,520,600,1000) driver.touch('drag', { 'fromX': 520, 'fromY': 1600, 'toX': 520, 'toY': 900 }) sleep(2) driver.element_by_name("我的薪智宝").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf4 = "./" + now + "_008_xinzhibao_macaca_R.png" driver.save_screenshot(sf4) sleep(2)
class AppP2b(unittest.TestCase): def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(4) def tearDown(self): # end the session self.driver.quit() def buy_Youbei(self): driver = self.driver driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/welcome_button").click() sleep(5) driver.element_by_id( "com.richfinancial.pujiaosuo:id/tv_title_view_left").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").clear() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").send_keys( "18811446922") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/password").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/password").send_keys("0422wxl") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/login").click() sleep(4) cancel = driver.elements_by_class_name("android.widget.Button") cancel[0].click() sleep(3) inv = driver.element_by_name("投资") inv.click() sleep(4) #优贝 #driver.element_by_id("com.richfinancial.pujiaosuo:id/tab_all_investing_product_list_right").click() driver.element_by_name("优贝").click() sleep(4) #page2 driver.touch('drag', { 'fromX': 520, 'fromY': 1700, 'toX': 520, 'toY': 100 }) sleep(2) driver.touch('drag', { 'fromX': 520, 'fromY': 1700, 'toX': 520, 'toY': 1100 }) sleep(2) driver.element_by_name("优贝180 14期").click() sleep(4) driver.element_by_name("立即投资").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_pay_value").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/invest_pay_value" ).send_keys("10000") sleep(2) #e-Bai #driver.element_by_id("com.richfinancial.pujiaosuo:id/cb_ebei").click() #sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_quan").click() sleep(2) #driver.element_by_name("100.00元投资券").click() driver.touch('tap', {'x': 520, 'y': 1400}) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_mothed").click() sleep(3) #driver.element_by_name("薪智宝(元)").click() driver.touch('tap', {'x': 520, 'y': 1400}) sleep(3) driver.element_by_name("我同意").click() sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/pay_now").click() sleep(5) driver.element_by_name("我的").click() sleep(4) driver.element_by_name("优贝赚呗投资记录").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf2 = "./" + now + "_009_inv_records_macaca_R.png" driver.save_screenshot(sf2) sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/item_title").click() sleep(3) now = time.strftime("%Y-%m-%d %H_%M_%S") sf3 = "./" + now + "_009_inv_detail_macaca_R.png" driver.save_screenshot(sf3) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.touch('drag', { 'fromX': 520, 'fromY': 1600, 'toX': 520, 'toY': 900 }) sleep(2) driver.element_by_name("我的券").click() sleep(4) driver.element_by_name("已使用").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf4 = "./" + now + "_009_usedcoupon_macaca_R.png" driver.save_screenshot(sf4) sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_name("我的薪智宝").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf5 = "./" + now + "_009_xinzhibao_macaca_R.png" driver.save_screenshot(sf5) sleep(3)
def setUpClass(cls): cls.driver = WebDriver(desired_caps, server_url) cls.driver.init()
class AppP2b(unittest.TestCase): def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(5) def tearDown(self): # end the session self.driver.quit() def buy_Zhixi(self): driver = self.driver driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/welcome_button").click() sleep(5) driver.element_by_id( "com.richfinancial.pujiaosuo:id/tv_title_view_left").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").send_keys( "18811446922") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/password").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/password").send_keys("0422wxl") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/login").click() sleep(5) cancel = driver.elements_by_class_name("android.widget.Button") cancel[0].click() sleep(3) driver.element_by_name("投资").click() sleep(3) #Zhixi driver.element_by_name("智息双全测试").click() sleep(5) driver.element_by_name("立即投资").click() sleep(3) amount = driver.element_by_id("com.richfinancial.pujiaosuo:id/editbox") amount.click() amount.send_keys("2400") sleep(2) #payment method driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_mothed").click() sleep(2) #driver.element_by_name("薪智宝(元)").click() driver.touch('tap', {'x': 520, 'y': 1400}) sleep(2) #I agree driver.element_by_name("我同意").click() sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/pay_now").click() sleep(5) driver.element_by_name("我的").click() sleep(4) driver.element_by_name("优贝赚呗投资记录").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf2 = "./" + now + "_030_inv_records_macaca_R.png" driver.save_screenshot(sf2) sleep(3) #t=driver.element_by_id("com.richfinancial.pujiaosuo:id/channel").text #assert '含手续费0.00元' in t driver.element_by_id( "com.richfinancial.pujiaosuo:id/item_title").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf3 = "./" + now + "_030_inv_detail_macaca_R.png" driver.save_screenshot(sf3) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.touch('drag', { 'fromX': 540, 'fromY': 1000, 'toX': 540, 'toY': 300 }) sleep(2) driver.element_by_name("我的薪智宝").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf4 = "./" + now + "_030_xinzhibao_macaca_R.png" driver.save_screenshot(sf4) sleep(3)
class AppP2b(unittest.TestCase): def setUp(self): # set up macaca self.driver = WebDriver(desired_caps, server_url) self.driver.init() sleep(5) def tearDown(self): # end the session self.driver.quit() def buy_zhuanbei(self): driver = self.driver #driver.swipe(430,600,40,600,1000) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.touch('drag', { 'fromX': 950, 'fromY': 1600, 'toX': 50, 'toY': 1600 }) sleep(4) driver.element_by_id( "com.richfinancial.pujiaosuo:id/welcome_button").click() sleep(5) #driver.element_by_name("登录").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/tv_title_view_left").click() sleep(5) driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").click() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").clear() driver.element_by_id("com.richfinancial.pujiaosuo:id/phone").send_keys( "18811446922") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/password").click() driver.element_by_id( "com.richfinancial.pujiaosuo:id/password").send_keys("0422wxl") sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/login").click() sleep(3) cancel = driver.elements_by_class_name("android.widget.Button") cancel[0].click() sleep(3) inv = driver.element_by_name("投资") inv.click() sleep(3) #赚呗 #driver.element_by_id("com.richfinancial.pujiaosuo:id/tab_all_investing_product_list_middle").click() driver.element_by_name("赚呗").click() sleep(3) #driver.touch('drag',{'fromX':520,'fromY':1000,'toX':520,'toY':800}) #sleep(1) driver.element_by_name("赚呗 14期").click() sleep(3) driver.element_by_name("立即投资").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_pay_value").click() #driver.element_by_id("com.richfinancial.pujiaosuo:id/invest_pay_value").clear() driver.element_by_id("com.richfinancial.pujiaosuo:id/invest_pay_value" ).send_keys("2400") sleep(2) driver.element_by_id( "com.richfinancial.pujiaosuo:id/invest_mothed").click() sleep(2) driver.element_by_name("建设银行(尾号5512)").click() sleep(2) #driver.element_by_id("com.richfinancial.pujiaosuo:id/xieyi_check").click() driver.element_by_name("我同意").click() sleep(2) driver.element_by_id("com.richfinancial.pujiaosuo:id/pay_now").click() sleep(6) driver.element_by_name("其他支付").click() sleep(10) ed = driver.elements_by_class_name("android.widget.EditText") ed[5].click() for j in range(11): driver.touch('tap', {'x': 674, 'y': 1512}) sleep(1) sleep(1) driver.touch('tap', {'x': 969, 'y': 1364}) sleep(1) driver.element_by_name("获取验证码").click() sleep(2) if driver.element_by_name_if_exists("确定"): driver.element_by_name("确定").click() sleep(1) sleep(1) ed[6].click() ed[6].send_keys("0000") driver.element_by_class_name("android.widget.CheckBox").click() sleep(2) #driver.element_by_name("确认支付").click() driver.elements_by_class_name("android.widget.Button")[1].click() sleep(8) #确定 driver.element_by_name("确定").click() sleep(3) driver.element_by_name("我的").click() sleep(4) driver.element_by_name("优贝赚呗投资记录").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf2 = "./" + now + "_017b_inv_records_macaca_R.png" driver.save_screenshot(sf2) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/item_title").click() sleep(3) now = time.strftime("%Y-%m-%d %H_%M_%S") sf3 = "./" + now + "_017b_inv_detail_macaca_R.png" driver.save_screenshot(sf3) sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_id( "com.richfinancial.pujiaosuo:id/layout_title_view_return").click() sleep(3) driver.element_by_name("账户余额(元)").click() sleep(4) driver.element_by_name("查看余额明细").click() sleep(4) now = time.strftime("%Y-%m-%d %H_%M_%S") sf4 = "./" + now + "_017b_recharge_records_macaca_R.png" driver.save_screenshot(sf4) sleep(3) """
def setUpClass(onion): onion.driver=WebDriver(desired_caps,server_url) onion.driver.init()