原始错误: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