python 使用 AppiumService 类启动appium server

一、前置说明

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

二、操作步骤

python 复制代码
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:

python 复制代码
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}输出启动日志,但是并没有成功看到日志输出。几经测试,仍没有成功输出,如果有小伙伴找到问题解决方案,请联系指正。

欢迎技术交流:

相关推荐
cui_ruicheng6 分钟前
C++11新特性(中):右值引用与移动语义
开发语言·c++·c++11
2401_873204657 分钟前
C++与Node.js集成
开发语言·c++·算法
小小张自由—>张有博10 分钟前
【深度解析】从 claude 命令到 cli.js 的完整执行链路
开发语言·javascript·ecmascript
阿kun要赚马内11 分钟前
Python——异常捕获
开发语言·python
☆56613 分钟前
基于C++的区块链实现
开发语言·c++·算法
于先生吖25 分钟前
JAVA 本地生活服务项目实战 家政 5.0 系统前后端分离部署
java·开发语言·生活
计算机安禾27 分钟前
【数据结构与算法】第5篇:线性表(一):顺序表(ArrayList)的实现与应用
c语言·开发语言·数据结构·c++·算法·visual studio code·visual studio
2301_8042154127 分钟前
使用Python进行量化交易入门
jvm·数据库·python
ghie909028 分钟前
C# WinForms 条形码生成器(含保存和打印预览功能)
开发语言·c#
霑潇雨30 分钟前
题解 | 深入分析各款产品年总销售额与竞品的年度对比
大数据·开发语言·数据库