【问题标题】:Action class is throwing error Could not proxy动作类抛出错误无法代理
【发布时间】:2019-05-18 14:11:47
【问题描述】:

Action 类抛出此错误

Action action=null;
action=new Actions(android);    
action.moveToElement(melement).click().build().perform()

点击元素时出错/n

错误是:处理 命令。原始错误:无法代理。代理错误:无法代理 命令到远程服务器。原始错误:501 - “未实现 命令:session/428b7e70ae59c02ea3bfb6da2f404581/actions"

Java客户端版本:6.0.0 BETA4

Appium:1.10.0

硒服务器:3.9.0**

知道是什么原因造成的吗?

下面是我的appium错误日志

[Chromedriver] UnknownError: An unknown server-side error occurred while 
processing the command. Original error: unknown error: The adb command 
failed. Extra response: <001ddevice 'ZY2239MTHQ' not foundFAIL001ddevice 
offline (no transport)>.
[Chromedriver] (Session info: chrome=70.0.3538.110)
[Chromedriver] (Driver info: chromedriver=2.44.609545 
(c2f88692e98ce7233d2df7c724465ecacfe74df5),platform=Mac OS X 10.13.4 x86_64)
[Chromedriver] at errorFromMJSONWPStatusCode 
(/Applications/Appium.app/Contents/Resources/app/node_modules/appium-base- 
driver/lib/protocol/errors.js:789:10)
[Chromedriver] at ProxyRequestError.getActualError 
(/Applications/Appium.app/Contents/Resources/app/node_modules/appium-base- 
driver/lib/protocol/errors.js:683:14)
[Chromedriver] at JWProxy.command 
(/Applications/Appium.app/Contents/Resources/app/node_modules/appium-base- 
driver/lib/jsonwp-proxy/proxy.js:234:19)

这是否意味着 ADB 有缺陷或我的设备有缺陷??

【问题讨论】:

    标签: appium appium-android


    【解决方案1】:

    查看日志时首先要考虑的是,日志显示&lt;001ddevice 'ZY2239MTHQ' not foundFAIL001ddevice offline (no transport)&gt;.,这意味着即使您的设备已连接到机器,它也处于离线状态。

    您可以尝试重新连接设备并检查adb devices。此命令必须显示设备及其当前状态。

    还有一点,使用Appium server和Java client,两者是一一对应的。

    Appium 服务器1.10 被Java 客户端7.0 支持,服务器1.9.16.1.0 Java 客户端支持。所以相应地使用这些库。

    这里要注意的另一点是,对于 Android 设备,您使用的是 Action 类而不是 AndroidTouchAction,而对于 iOS 设备,您使用的是 IOSTouchAction 类。因此,请使用适当的类来查看您想要的结果。

    同时考虑使用最新版本的 selenium jar。

    【讨论】:

      【解决方案2】:

      使用 adb 卸载并删除此软件包。这对我有用:

      adb -s UDID uninstall io.appium.uiautomator2.server
      adb -s UDID uninstall io.appium.uiautomator2.server.test
      adb -s UDID uninstall io.appium.unlock
      adb -s UDID uninstall io.appium.settings
      

      这个问题有时也可能是由于超时引起的。多睡一会儿看看 在每个动作之后。如果可行,请使用适当的等待。

      【讨论】:

      • UDID是我们从adb devices得到的设备ID??
      • 是的 UDID 我们是 IOS 的设备 ID。在 android 中是设备 ID
      • adb uninstall 你可以这样做,跳过上面命令中的 deviceID。
      • 仍然面临同样的问题,你有没有其他方法来解决这个问题?感谢您的宝贵时间
      • github.com/appium/appium/issues/11538 人们在这里找到了解决方案,方法是降级 appium 版本或完全删除它并重新安装。请按照上面的线程。
      【解决方案3】:

      您在 desiredCapabilities 中使用了 udid,其值为 ZY2239MTHQ。它无法使用 udid ZY2239MTHQ 找到您的设备。确保您的设备连接正确。 在终端中运行以下命令:

      adb devices

      此命令将显示连接到您的计算机的设备。如果您的设备未列出,则必须在您的设备中启用开发者选项。

      确保您在代码中使用的 udid 与使用上述命令显示的 udid 匹配。

      【讨论】:

      • adb devices 显示相同的 ID,事实证明这种行为只发生在我的 AUT 的特定页面的特定元素上,使用相同的方法可以轻松点击其他所有元素
      • 您是否每次进入此屏幕时都会收到此错误?您在执行测试时是否关闭了设备屏幕?错误日志显示您的设备处于离线状态。
      【解决方案4】:

      可能您要导航的元素不在当前页面上,因为在调用 click() 函数之前,请求的页面加载速度不够快,无法加载所需的元素,或者它只是重定向到另一个页面,而您的元素仍未加载。尝试在 click() 函数之前放置 wait() 函数来等待您的元素加载。

      【讨论】:

      • 元素存在且可见
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-28
      • 2016-05-22
      • 2019-06-08
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      相关资源
      最近更新 更多