开发者问题收集

原始错误:io.appium.uiautomator2.common.exceptions.UiAutomator2Exception

2019-01-24
7939
  • 运行脚本时出现未知的服务器端错误。
  • 滚动时脚本会终止,否则会正常运行。

日志错误:

org.openqa.selenium.WebDriverException: An unknown server-side error occurred while processing the command. Original error: io.appium.uiautomator2.common.exceptions.UiAutomator2Exception: java.lang.IllegalStateException: UiAutomation not connected!
    at io.appium.uiautomator2.utils.UiExpressionParser.invokeMethod(UiExpressionParser.java:251)
    at io.appium.uiautomator2.utils.UiScrollableParser.consumeMethodCall(UiScrollableParser.java:124)
    at io.appium.uiautomator2.utils.UiScrollableParser.parse(UiScrollableParser.java:60)
    at io.appium.uiautomator2.utils.UiAutomatorParser.consumeStatement(UiAutomatorParser.java:93)
    at io.appium.uiautomator2.utils.UiAutomatorParser.parse(UiAutomatorParser.java:49)
    at io.appium.uiautomator2.utils.LocationHelpers.toSelectors(LocationHelpers.java:95)
    at io.appium.uiautomator2.utils.LocationHelpers.toSelector(LocationHelpers.java:88)
    at io.appium.uiautomator2.handler.FindElement.findElement(FindElement.java:144)
    at io.appium.uiautomator2.handler.FindElement.safeHandle(FindElement.java:75)
    at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:37)
    at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:250)
    at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:241)
    at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:44)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)

* **元素信息:

{Using=-android uiautomator, value=new UiScrollable(new UiSelector()).scrollIntoView(new UiSelector().text(" val "));}

Appium 日志:

2个回答

在测试运行之前使用 adb kill-server; adb start-server 重新启动 adb 。 因为有时 appium 服务器会出现 adb 问题,所以通过重新启动可以避免此问题,但并非每次出现此错误时都可以再次开始执行,如果没有解决,请重新启动 adb ,然后开始执行可以工作的脚本。 很高兴能帮到您... 如果您有任何疑问,请在下面发表评论。

akshay patil
2019-01-24

我之前在Android的一个应用中,打开一个网页的时候,我猜是appium在监控这个应用,但是却监控不到浏览器里另一个打开网页的线程(虽然在手机上是这么看的),或者会不会是浏览器页面跳转之类的?具体原因我也不清楚,但是我通过重启webdriver就可以获取到显示层元素了。python代码如下:

self.driver = webdriver.Remote(appium_server_url, self.capabilities)
self.driver.find_element(by=AppiumBy.XPATH, value='//android.widget.ImageView[@content-desc="more"]').click()
# restart webdriver
self.driver.quit()
self.driver = webdriver.Remote(appium_server_url, self.capabilities)
#
self.driver.find_element(by=AppiumBy.XPATH, value='//android.widget.TextView[@text="link"]').click()
MonkeyStack
2023-05-30