我一直在尝试从应用程序的本机上下文访问webview,但我无法通过以下错误执行此操作。
WebDriverException:消息:处理命令时发生未知的服务器端错误。 (原始错误:没有从Chromedriver获得会话重定向)
我尝试在Android模拟器上使用appium 1.3.7.2运行我的脚本,其中包括4.4.2,5.1和4.3等多种配置。这三个似乎都没有工作,他们正在抛出同样的错误。
我也调查了https://code.google.com/p/chromedriver/issues/detail?id=845&thanks=845&ts=1404927199并按照了几个步骤,更改了chromedriver二进制文件,但没有运气。
我有多个网络视图,但我不认为这应该是问题。有人可以帮我这个吗?
请查看以下堆栈跟踪:
o:[debug]执行cmd:C:\ Users *** \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s emulator-5554 shell" ps"
info:[debug] WEBVIEW_2767映射到pid 2767 info:[debug]获取webview的进程名称 info:[debug]执行cmd:C:\ Users *** \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s emulator-5554 shell" ps" info:[debug] Parsed pid:2767 pkg: * info:[debug] from:u0_a53,2767,944,800448,111104,ffffffff,b75152d2,S, info:[debug]返回流程名称: info:[debug] Parsed pid:2785 pkg: info:[debug] from:u0_a53,2785,944,593196,52692,ffffffff,b7577355,S, info:[debug]返回进程名称: info:[debug]可用的上下文:NATIVE_APP, , info:[debug] [" WEBVIEW_ "" WEBVIEW_ & #34;] info:[debug]可用的上下文:NATIVE_APP,WEBVIEW_ ,WEBVIEW_ info:[debug]连接到支持chrome的webview info:[debug]创建Chrome会话 info:[debug]将chromedriver二进制文件设置为:C:\ Program Files(x86)\ Appium \ node_modules \ appium \ build \ chromedriver \ windows \ chromedriver.exe info:[debug]确保Chromedriver存在 info:[debug]杀死任何旧的chromedrivers,运行:FOR / F" usebackq tokens = 5" (
netstat -nao ^| findstr /R /C:"9515 "
)中的%a(FOR / F" usebackq"(TASKLIST /FI "PID eq %a" ^| findstr /I chromedriver.exe
)中的%b)(IF NOT%b =="" TASKKILL / F / PID%b)) info:[debug]似乎没有旧的chromedrivers存在 info:[debug]产生chromedriver:C:\ Program Files(x86)\ Appium \ node_modules \ appium \ build \ chromedriver \ windows \ chromedriver.exe info:[debug] [CHROMEDRIVER]在端口9515上启动ChromeDriver(v2.10.289383) 仅允许本地连接。 info:[debug]使用opts发出http请求:{" url":" http://127.0.0.1:9515/wd/hub/session","方法":" POST&# 34;," JSON" {"的sessionId":空," desiredCapabilities" {" chromeOptions" {" androidPackage&# 34;:"的 的"" androidUseRunningApp":真," androidDeviceSerial":"模拟器-5554"}}}} info:[debug]响应客户端并出现错误:{" status":13," value":{" message":"未知服务器 - 处理命令时发生了侧面错误。 (原始错误:没有从Chromedriver获得会话重定向)"," origValue":"没有从Chromedriver"}," sessionId"获得会话重定向:" ac576cc4-fea0-450d-a4bf-f2b5f2ca9dc4"} info:< - POST / wd / hub / session / ac576cc4-fea0-450d-a4bf-f2b5f2ca9dc4 / context 500 416.371 ms - 280 在Chromedriver.onClose(C:\ Program Files(x86)\ Appium \ node_modules \ appium \ lib \ devices \ android \ chromedriver.js:144:10) 在ChildProcess.EventEmitter.emit(events.js:98:17) 在Process.ChildProcess._handle.onexit(child_process.js:797:12)上下文:[POST / wd / hub / session / ac576cc4-fea0-450d-a4bf-f2b5f2ca9dc4 / context {" sessionId":& #34; ac576cc4-fea0-450d-a4bf-f2b5f2ca9dc4""名称":"网页视图_ * "}] info:[debug] [CHROMEDRIVER STDERR] [0.008] [SEVERE]:无法将套接字绑定到127.0.0.1:9515 info:[debug] [CHROMEDRIVER]端口不可用。退出... 信息: - > DELETE / wd / hub / session / ac576cc4-fea0-450d-a4bf-f2b5f2ca9dc4 {} 信息:关闭appium会话 info:[debug]按HOME按钮 info:[debug]执行cmd:C:\ Users *** \ AppData \ Local \ Android \ sdk \ platform-tools \ adb.exe -s emulator-5554 shell"输入keyevent 3" info:[debug] Chromedriver退出代码1 info:[debug]停止logcat捕获 info:[debug] Logcat终止,代码为null,信号为SIGTERM info:[debug] [BOOTSTRAP] [debug]从客户端获取数据:{" cmd":" shutdown"} info:[debug] [BOOTSTRAP] [debug]得到SHUTDOWN类型的命令 info:[debug] [BOOTSTRAP] [debug]返回结果:{" status":0," value":" OK,关闭"} info:[debug] [BOOTSTRAP] [debug]封闭客户端连接 info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:numtests = 1 info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:stream =。 info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:id = UiAutomatorTestRunner info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:test = testRunServer info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:class = io.appium.android.bootstrap.Bootstrap info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:current = 1 info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:0 info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS:stream = info:[debug] [UIAUTOMATOR STDOUT] WatcherResultPrinter =的测试结果。 info:[debug] [UIAUTOMATOR STDOUT]时间:53.474 info:[debug] [UIAUTOMATOR STDOUT] OK(1测试) info:[debug] [UIAUTOMATOR STDOUT] INSTRUMENTATION_STATUS_CODE:-1 info:[debug]发送shutdown命令,等待UiAutomator停止... info:[debug] UiAutomator正常关闭 info:[debug]清理android对象 info:[debug]清理appium会话
答案 0 :(得分:0)
2012年12月5日。
我希望目前使用AppiumDriver解决此问题,然后使用以下方法将上下文切换到Webview:
Set<String> contextNames = driver.getContextHandles();
for (String contextName : contextNames) {
System.out.println(contextName); //prints out something like NATIVE_APP, WEBVIEW_com.example.android etc..}
String setContext = contextNames.toArray()[1].toString();
driver.context(setContext);// set context to WEBVIEW_com.example.android
使用css和classname执行操作。使用driver.context(NATIVE_APP);