一、前置说明
在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}
输出启动日志,但是并没有成功看到日志输出。几经测试,仍没有成功输出,如果有小伙伴找到问题解决方案,请联系指正。
欢迎技术交流: