当前位置: 首页 > article >正文

python 使用 AppiumService 类启动appium server

一、前置说明

在Appium的1.6.0版本中引入了AppiumService类,可以很方便的通过该类来管理Appium服务器的启动和停止。

二、操作步骤

import os

from appium.webdriver.appium_service import AppiumService as OriginalServer

from libs import path


class AppiumService(OriginalServer):

    def __init__(self, port='4723', log_file_path=None):
        self.port = port
        self.log_file_path = log_file_path
        if not self.log_file_path:
            self.log_file_path = os.path.join(path.get_log_dir(), f'Appium_Server_{port}.log')

        super().__init__()

    def start_server(self, **kwargs):
        args = [
            f'-p {self.port}',
            f'-g {self.log_file_path}',
            '--session-override',
            '--log-timestamp',
            '--session-override',
            '--local-timezone',
            '--allow-insecure chromedriver_autodownload',
        ]
        self.start(args=args, **kwargs)


if __name__ == '__main__':
    service = AppiumService()
    service.start()
    print(service.is_running)
    print(service.is_listening)

三、Demo验证

运行代码,可以启动appium server,执行测试脚本,成功打开app:

def test_launch():
    import logging
    logging.basicConfig(level=logging.DEBUG)

    from driver.appium.driver import WebDriver

    appium_server_url = 'http://localhost:4723'
    capabilities = {
        "platformName": "Android",
        "automationName": "uiautomator2",
        "deviceName": "127.0.0.1:62001",
        "app": "D:\\resources\\ApiDemos-debug.apk",
    }
    driver = WebDriver(command_executor=appium_server_url, capabilities=capabilities)

但是,有一点小问题,在上面代码中我加入了-g {self.log_file_path}输出启动日志,但是并没有成功看到日志输出。几经测试,仍没有成功输出,如果有小伙伴找到问题解决方案,请联系指正。

欢迎技术交流:


http://www.kler.cn/news/162875.html

相关文章:

  • Android Camera2使用
  • 【Linux】more命令使用
  • MySQL:1118 - Row size too large(行大小不能超过 65535 问题)
  • docker安装node及使用
  • 消息队列的基本概念以及作用
  • 06、pytest将多个测试放在一个类中
  • 用23种设计模式打造一个cocos creator的游戏框架----(三)外观模式模式
  • 2024黑龙江省职业院校技能大赛信息安全管理与评估赛项规程
  • Pipenv环境配置+Pytest运行
  • Vue JAVA开发常用模板
  • spring 的概述和入门
  • Vue脚手架 生命周期 组件化开发
  • 【Pyqt】QObject::connect: Cannot queue arguments of type ‘QTextCursor‘
  • Windows故障排除 – 连接WiFi却无法上网
  • vue router之route和router的区别
  • 模电笔记。。。。
  • 智慧能源:数字孪生压缩空气储能管控平台
  • 关于torch.nn.Embedding的浅显理解
  • 初识Linux:权限(1)
  • 手持式安卓主板_PDA安卓板_智能手持终端方案
  • 【C/PTA】结构体专项练习
  • 直面双碳目标,优维科技携手奥意建筑打造绿色低碳建筑数智云平台
  • C++异常剖析
  • C语言精选——选择题Day40
  • 基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(二)——数据清洗、转换
  • 创建自定义Docker镜像:一步步指南
  • 一.初始typescript
  • 人大金仓(kingbase)数据库常用sql命令
  • 深度学习之注意力机制
  • Fiddler抓包模拟器(雷电模拟器)