You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用RobotFramework+Appium启动应用触发ValueError超时错误求助

问题描述

使用RobotFramework调用Appium启动应用时,出现如下错误:

ValueError: Timeout value connect was <object object at 0x106cc5b50>, but it must be an int, float or None.

仅使用了RobotFramework AppiumLibrary中的Open Application关键字,此前从未出现该问题。

环境信息

Python版本

Python 3.9.12

Pip包列表

Package                        Version
------------------------------ --------
Appium-Python-Client           1.3.0
astor                          0.8.1
async-generator                1.10
attrs                          23.1.0
beautifulsoup4                 4.9.1
certifi                        2023.5.7
chardet                        3.0.4
charset-normalizer             2.0.12
decorator                      5.1.1
docutils                       0.18.1
exceptiongroup                 1.1.1
h11                            0.14.0
idna                           2.10
kitchen                        1.2.6
lxml                           4.5.2
outcome                        1.2.0
pip                            22.0.4
PySocks                        1.7.1
PyYAML                         6.0
requests                       2.30.0
robotframework                 5.0
robotframework-appiumlibrary   1.6.3
robotframework-pabot           2.5.4
robotframework-pythonlibcore   4.1.2
robotframework-requests        0.9.2
robotframework-seleniumlibrary 6.1.0
robotframework-stacktrace      0.4.1
selenium                       3.141.0
setuptools                     60.10.0
six                            1.16.0
sniffio                        1.3.0
sortedcontainers               2.4.0
soupsieve                      2.0.1
strutil                        0.2.1
tk                             0.1.0
trio                           0.22.0
trio-websocket                 0.10.2
urllib3                        2.0.2
wheel                          0.37.1
wsproto                        1.2.0

测试用例代码

*** Settings ***

#  Default Library
Library         AppiumLibrary
Library         BuiltIn

*** Variables ***
${path}         /Users/jj/Downloads/sample.apk


*** Test Cases ***

Install the app
    Open Application    http://localhost:4723/wd/hub    alias=Myapp1    platformName=iOS    platformVersion=7.0 deviceName='iPhone Simulator'   app=${path}     

用户疑问:检查日志发现Appium并未运行,这可能是问题所在吗?


问题分析与解决

1. Appium未运行是核心诱因

Appium服务未启动时,AppiumLibrary尝试连接http://localhost:4723/wd/hub会失败,结合你当前的库版本组合,这种连接失败被转化为了超时值类型错误,而非直接提示连接失败。所以先启动Appium服务是必要步骤。

2. 版本兼容性冲突是根本原因

从包列表看,Appium-Python-Client 1.3.0版本过旧,和urllib3 2.0.2存在兼容性问题:urllib3 2.x对超时参数的类型校验更严格,旧版本的Appium-Python-Client传递了不符合要求的超时对象,直接触发了该ValueError。

修复步骤

  • 启动Appium服务:打开命令行执行appium命令,确保服务在localhost:4723正常运行后再执行测试用例。
  • 调整包版本:
    1. 降级urllib3到1.x兼容版本:
      pip install urllib3==1.26.15
      
    2. 升级Appium-Python-Client到适配版本:
      pip install Appium-Python-Client==2.11.1
      
  • 修正测试用例参数:测试用例中同时指定platformName=iOS和app=${path}(APK是Android应用包),参数矛盾,需根据实际测试平台调整:
    • 若测试iOS,将app改为.ipa或.app文件路径;
    • 若测试Android,将platformName改为Android,并匹配对应平台的其他参数。

内容的提问来源于stack exchange,提问作者user2399158

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:47:35