Appium 1.9.1 启动报错 Fatal TypeError: Class constructor BaseDriver cannot be invoked without 'new'...

安装了appium 1.9.1后一直报错Fatal TypeError: Class constructor BaseDriver cannot be invoked without 'new',无法启动,卸载后安装1.8.1可以正常使用了。

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm uninstall -g appium
cnpm install -g appium@1.8.1
rm /usr/local/bin/appium
ln -s /usr/local/Cellar/node/10.12.0/lib/node_modules/appium/build/lib/main.js /usr/local/bin/appium
yang$ appium [Appium] Welcome to Appium v1.8.1 [Appium] Appium REST http interface listener started on 0.0.0.0:4723

之前安装的1.9.0  1.9.1都报错,无法启动:

[appium@1.9.1] link /usr/local/Cellar/node/10.12.0/bin/appium@ -> /usr/local/Cellar/node/10.12.0/lib/node_modules/appium/build/lib/main.js

yang$ /usr/local/Cellar/node/10.12.0/lib/node_modules/appium/build/lib/main.js

(node:9164) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.

[Appium] Welcome to Appium v1.9.1

Fatal TypeError: Class constructor BaseDriver cannot be invoked without 'new'

at new AppiumDriver (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/lib/appium.js:131:19)

at main$ (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/lib/main.js:124:16)

at tryCatch (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/node_modules/_babel-runtime@5.8.24@babel-runtime/regenerator/runtime.js:67:40)

at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/node_modules/_babel-runtime@5.8.24@babel-runtime/regenerator/runtime.js:315:22)

at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/node_modules/_babel-runtime@5.8.24@babel-runtime/regenerator/runtime.js:100:21)

at GeneratorFunctionPrototype.invoke (/usr/local/Cellar/node/10.12.0/lib/node_modules/appium/node_modules/_babel-runtime@5.8.24@babel-runtime/regenerator/runtime.js:136:37)

yang$ cnpm uninstall -g appium

资料推荐:

Jmeter
链接: https://pan.baidu.com/s/19k2ysPbid8asXRLyHlD87Q&shfl=shareset 提取码: cwz1

更多资料欢迎关注我的公众号获取,关注后

回复关键字:简历模板,java,python,数据结构,linux,运维,哈佛学霸,算法,创业即可获取相关资料。

根据原作 https://pan.quark.cn/s/459657bcfd45 的源码改编 Classic-ML-Methods-Algo 引言 建立这个项目,是为了梳理和总结传统机器学习(Machine Learning)方法(methods)或者算法(algo),和各位同仁相互学习交流. 现在的深度学习本质上来自于传统的神经网络模型,很大程度上是传统机器学习的延续,同时也在不少时候需要结合传统方法来实现. 任何机器学习方法基本的流程结构都是通用的;使用的评价方法也基本通用;使用的一些数学知识也是通用的. 本文在梳理传统机器学习方法算法的同时也会顺便补充这些流程,数学上的知识以供参考. 机器学习 机器学习是人工智能(Artificial Intelligence)的一个分支,也是实现人工智能最重要的手段.区别于传统的基于规则(rule-based)的算法,机器学习可以从数据中获取知识,从而实现规定的任务[Ian Goodfellow and Yoshua Bengio and Aaron Courville的Deep Learning].这些知识可以分为四种: 总结(summarization) 预测(prediction) 估计(estimation) 假想验证(hypothesis testing) 机器学习主要关心的是预测[Varian在Big Data : New Tricks for Econometrics],预测的可以是连续性的输出变量,分类,聚类或者物品之间的有趣关联. 机器学习分类 根据数据配置(setting,是否有标签,可以是连续的也可以是离散的)和任务目标,我们可以将机器学习方法分为四种: 无监督(unsupervised) 训练数据没有给定...
### 解决 Selenium 4 和 Appium 中 `webdriver.Remote()` 报错的问题 在 Selenium 4 中,`webdriver.Remote()` 的构造函数不再接受 `desired_capabilities` 参数,而是需要通过 `options` 参数传递浏览器或设备的配置信息[^1]。以下是一个完整的解决方案,展示如何在 Appium 环境中正确使用 `webdriver.Remote()`。 #### 替代方案:使用 `options` 参数 在 Selenium 4 中,`desired_capabilities` 的功能可以通过 `options` 参数和 `set_capability()` 方法实现。以下是具体实现代码: ```python from appium import webdriver from appium.options.android import UiAutomator2Options # 创建 UiAutomator2Options 实例 options = UiAutomator2Options() options.platform_name = 'Android' # 平台名称 options.device_name = 'Android Emulator' # 设备名称 options.app_package = 'com.bertadata.qxb' # 应用包名 options.app_activity = '.activity.SplashActivity' # 应用启动活动 # 使用 Remote 方法实例化 WebDriver,并传递 options 参数 driver = webdriver.Remote( command_executor='http://127.0.0.1:4723/wd/hub', # Appium Server 地址 options=options # 必须传递 options 参数 ) # 访问应用页面 print(driver.session_id) # 关闭会话 driver.quit() ``` #### 参数说明 - `command_executor`: 指定 Appium Server 的地址。 - `options`: 传递设备或应用的配置信息,必须为 `UiAutomator2Options` 或其他支持的选项类实例[^3]。 - `platform_name`: 指定平台名称(如 Android 或 iOS)。 - `device_name`: 指定设备名称(可以是真实设备或模拟器)。 - `app_package` 和 `app_activity`: 指定应用的包名和启动活动[^4]。 #### 错误原因分析 错误信息 `TypeError: __init__() got an unexpected keyword argument 'desired_capabilities'` 表明 `webdriver.Remote()` 不再支持直接传递 `desired_capabilities` 参数。这是由于 Selenium 4 的 API 改动导致的,要求开发者显式使用 `options` 参数来设置能力[^1]。 #### 兼容性注意事项 如果使用的是不同版本的 Appium,建议参考 Appium 官方文档以查看推荐的 Selenium 版本,并手动安装兼容版本。例如,Appium 1.21.x 建议使用 Selenium 4.0.x 版本[^2]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值