python中appium

错误搜集

D:\Program\Util\python.exe "D:/Program/myUtil/PyCharm 2024.3.5/plugins/python-ce/helpers/pycharm/_jb_pytest_runner.py" --target demo.py::TestAppium

Testing started at 15:51 ...

Launching pytest with arguments demo.py::TestAppium --no-header --no-summary -q in C:\Users\Administrator\PycharmProjects\pyAppium

============================= test session starts =============================

collecting ... collected 1 item

demo.py::TestAppium::test_study

======================== 1 failed, 3 warnings in 5.41s ========================

FAILED [100%]

demo.py:15 (TestAppium.test_study)

self = <demo.TestAppium object at 0x0000025BC0300A50>

def test_study(self):
> self.app_do.find_element(by=AppiumBy.ID,value="")

demo.py:17:


D:\Program\Util\Lib\site-packages\selenium\webdriver\remote\webdriver.py:922: in find_element

return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

D:\Program\Util\Lib\site-packages\selenium\webdriver\remote\webdriver.py:454: in execute

self.error_handler.check_response(response)


self = <appium.webdriver.errorhandler.MobileErrorHandler object at 0x0000025BC04301A0>

response = {'status': 500, 'value': '{"value":{"error":"unknown error","message":"An unknown server-side error occurred while pro...20.2\\\\node_modules\\\\appium\\\\node_modules\\\\@appium\\\\base-driver\\\\lib\\\\protocol\\\\protocol.js:487:57)"}}'}

def check_response(self, response: Dict[str, Any]) -> None:

"""

https://www.w3.org/TR/webdriver/#errors

"""

payload = response.get('value', '')

if isinstance(payload, dict):

payload_dict = payload

else:

try:

payload_dict = json.loads(payload)

except (json.JSONDecodeError, TypeError):

return

if not isinstance(payload_dict, dict):

return

value = payload_dict.get('value')

if not isinstance(value, dict):

return

error = value.get('error')

if not error:

return

message = value.get('message', error)

stacktrace = value.get('stacktrace', '')

In theory, we should also be checking HTTP status codes.

Java client, for example, prints a warning if the actual `error`

value does not match to the response's HTTP status code.

exception_class: Type[sel_exceptions.WebDriverException] = ERROR_TO_EXC_MAPPING.get(

error, sel_exceptions.WebDriverException

)

if exception_class is sel_exceptions.WebDriverException and message:

if message == 'No such context found.':

exception_class = appium_exceptions.NoSuchContextException

elif message == 'That command could not be executed in the current context.':

exception_class = appium_exceptions.InvalidSwitchToTargetException

if exception_class is sel_exceptions.UnexpectedAlertPresentException:

raise sel_exceptions.UnexpectedAlertPresentException(

msg=message,

stacktrace=format_stacktrace(stacktrace),

alert_text=value.get('data'),

)

> raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))

E selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurred while processing the command. Original error: Must provide a selector when finding elements

E Stacktrace:

E UnknownError: An unknown server-side error occurred while processing the command. Original error: Must provide a selector when finding elements

E at getResponseForW3CError (D:\Program\Util\nvm\nvm\v16.20.2\node_modules\appium\node_modules\@appium\base-driver\lib\protocol\errors.js:1143:9)

E at asyncHandler (D:\Program\Util\nvm\nvm\v16.20.2\node_modules\appium\node_modules\@appium\base-driver\lib\protocol\protocol.js:487:57)

D:\Program\Util\Lib\site-packages\appium\webdriver\errorhandler.py:125: WebDriverException

Process finished with exit code 1

错误分析

> self.app_do.find_element(by=AppiumBy.ID,value="")

看这里这行代码,发现忘记填写value中的id值了。

解决办法

补充value中定位的id值

android:id/icon

修改代码部分,填写id值

运行结果

相关推荐
无风听海8 分钟前
C# 隐式转换深度解析
java·开发语言·c#
涛声依旧-底层原理研究所1 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
一只大袋鼠1 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
csdn_aspnet1 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
fantasy_arch1 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆1 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
LuminousCPP1 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
web3.08889992 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python
AI算法沐枫2 小时前
深度学习python代码处理科研测序数据
数据结构·人工智能·python·深度学习·决策树·机器学习·线性回归
один but you2 小时前
从可变参数到 emplace:现代 C++ 性能优化的核心组合
java·开发语言