当我在真实设备上运行代码时,它工作正常,但是当我在模拟器上运行相同的代码时,它会显示Webview上下文,但给出以下错误: io.appium.java_client.NoSuchContextException:处理命令时发生未知的服务器端错误。原始错误:无法启动 Chrome 驱动程序会话:无法创建新会话。(原始错误:未创建会话异常:Chrome 版本必须为>= 60.0.3112.0 (驱动程序信息:chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.13.4 x86_64))(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:0 毫秒 构建信息:版本:"3.11.0",修订版:"e59cfb3",时间:"2018-03-11T20:33:08.638Z" 系统信息: 主机: 'Sanjays-MacBook-Air.local', ip: 'fe80:0:0:0:10ca:4ed3:43d2:24ed%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.13.4', java.version: '1.8.0_171' 驱动程序信息: io.appium.java_client.android.AndroidDriver 功能 {Browser_Name: Chrome, appActivity: mobile.zineone.com.function..., appPackage: mobile.zineone.com.function, autoGrantPermissions: true, databaseEnabled: false, desired: {Browser_Name: Chrome, appActivity: mobile.zineone.com.function..., appPackage: mobile.zineone.com.function, autoGrantPermissions: true, deviceName: Moto G, platformName: android, unicodeKeyboard: true}, deviceMaker: unknown, deviceModel: Android SDK 专为x86_64构建, 设备名称: 模拟器-5556, deviceScreenSize: 1440x2560, deviceUDID: emulator-5556, javascriptEnabled: true, locationContextEnabled: false, networkConnectionEnabled: true, platform: LINUX, platformName: LINUX, platformVersion: 6.0, takesScreenshot: true, unicodeKeyboard: true, warnings: {}, webStorageEnabled: false} 会话 ID:6e181e7b-f5b1-4357-882a-38d7de73d099
如果您更仔细地检查收到的错误,您将看到它指出:
Original error: session not created exception:
Chrome version must be >= 60.0.3112.0
Driver info: chromedriver=2.33.506106
Chromedriver 是一个中间处理程序,允许 Appium 与您设备上的实际 Chrome 浏览器进行通信。
问题是:每个版本的chromedriver仅支持特定范围的chrome版本,在您的情况下,chromedriver 2.33支持Chrome v60-62
您的真实设备具有60-62的chrome浏览器版本,并且可以在那里工作。
但是您的模拟器很可能具有旧版本的浏览器。
您的操作:
- 检查模拟器上的浏览器版本
- 在此处找到匹配的 chrome 驱动程序并将其下载到您托管 appium 服务器的机器上。
- 使用
chromedriverExecutable
功能在创建 Appium 会话时提供新 chromedriver 的绝对路径 - 享受:)