コード例 #1
0
 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'
     )
コード例 #2
0
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
コード例 #3
0
	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)  # 预期结果列
コード例 #4
0
 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()
コード例 #5
0
    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
コード例 #6
0
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)
コード例 #7
0
 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)
コード例 #8
0
ファイル: base.py プロジェクト: wdp150360/monkeyUItest
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
コード例 #9
0
ファイル: base.py プロジェクト: wdp150360/monkeyUItest
 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
コード例 #10
0
    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)
コード例 #11
0
    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()
コード例 #12
0
    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()
コード例 #13
0
    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()
コード例 #14
0
 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()
コード例 #15
0
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'])
コード例 #16
0
    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
コード例 #17
0
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)
コード例 #18
0
ファイル: driver.py プロジェクト: zongli2017/po-sample-python
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
コード例 #19
0
    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)
コード例 #20
0
ファイル: Drivers.py プロジェクト: BachWings/iOS-KoudaiAuto
    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()
コード例 #21
0
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)
        """
コード例 #24
0
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
コード例 #25
0
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])  # 断言
コード例 #26
0
# @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)
コード例 #29
0
 def setUpClass(cls):
     cls.driver = WebDriver(desired_caps, server_url)
     cls.driver.init()
コード例 #30
0
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)
コード例 #31
0
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)
        """
コード例 #32
0
 def setUpClass(onion):
     onion.driver=WebDriver(desired_caps,server_url)
     onion.driver.init()