ios - 尝试使用 selenium 网格启动 appium 驱动程序失败

标签 ios ruby automated-tests appium selenium-grid2

我正在尝试使用带有 Selenium Grid 的 Appium 在真实的 iOS 设备中并行运行测试。目前我能够创建集线器,实例化节点并使 Appium 连接到每个相应的节点(检查 appium_log)。我现在的问题是我无法正常启动 Appium 驱动程序。最让我担心的是,当我在 Selenium Grid 之外启动 Appium 时,它运行正常。这似乎是 Appium 和 Selenium Grid Capabilities 之间的不匹配,但我无法弄清楚它到底是什么,因为该错误表明 Appium 正在尝试加载 Safari 驱动程序而不是 iOS 驱动程序。下面是错误和使用的配置。抱歉,如果没有提供所有需要的信息,我是社区的新手,如果有任何遗漏,请告诉我,以便我编辑帖子。提前致谢。

返回错误

Failure/Error: Unable to find [remote server]
org.openqa.selenium.remote.server.DefaultDriverFactory(DefaultDriverFactory.java) to read failed line
Selenium::WebDriver::Error::UnknownError:
The best matching driver provider org.openqa.selenium.safari.SafariDriver can't create a new driver instance for Capabilities [{app=APP_PATH, noReset=false, newCommandTimeout=60000, browserName=iPhone, deviceName=UDID, version=9.1, launchTimeout=60000, fullReset=false, platform=MAC, autoAcceptAlerts=false}]
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
System info: host: 'MacBook.local', ip: '127.0.0.1', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.2', java.version: '1.8.0_121'
Driver info: driver.version: unknown (org.openqa.selenium.WebDriverException)

启动appium驱动之前执行的命令

java -jar sel/selenium-server-standalone-2.53.0.jar -role hub
appium --full-reset -U --tmp tmp-5700/ --nodeconfig sel/node.json > tmp-5700/appium.log

node.json

{
"capabilities":
[{
"browserName": "iPhone",
"version":"9.1",
"maxInstances": 1,
"platform":"mac"
}],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:5700/wd/hub",
"host": "127.0.0.1",
"port": 5700,
"maxSession": 1,
"register": true,
"registerCycle": 5000,
"hubPort": 4444,
"hubHost": "127.0.0.1"
}
}

用于启动 Appium 驱动程序的 Ruby 代码(无需 Selenium Grid 即可运行 - 只需删除 appium_lib 内容)

require 'appium_lib'
require 'selenium-webdriver'

opts = {
caps: {
platformName: 'ios',
browserName: 'iPhone',
deviceName: UDID,
platform: 'mac',
version: '9.1',
app: APP_PATH,
launchTimeout: 60000,
newCommandTimeout: 60000,
autoAcceptAlerts: false,
fullReset: false,
noReset: false
},
appium_lib: {
port: 5700,
server_url: "http://127.0.0.1:5700/wd/hub",
wait_timeout: 30
}
}

Appium::Driver.new(opts).start_driver

最佳答案

问题已解决,希望没有人会遇到同样的问题,但如果他们遇到了问题,那就是问题所在。在用于启动 appium 的 ruby​​ 中描述的功能中,我提供了 selenium 节点端口而不是 appium 端口。

关于ios - 尝试使用 selenium 网格启动 appium 驱动程序失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42249337/

相关文章:

c# - Selenium C# WebDriver : Wait until element is present

ios - 跨平台 NSValue 类别

objective-c - 应用验证失败 : Unable to create Configuration directory:/user/username/. itmstransporter

javascript - 获取来自 WKWebView 的 JavaScript 错误

ruby-on-rails - 索引中 instance_variable 的 RSpec

ruby - 使用 soap4r 时 sslv3 警告意外消息

iphone - iOS 应用程序 UI 自动化测试的最佳资源

iphone - iPhone 应用程序上的 Facebook 登录

ruby-on-rails - 非常基本的 Ruby 问题 (Rails for Zombies)

java - JUnit 混淆 : use 'extends TestCase' or '@Test' ?