Ошибка при запуске драйвера appium с сеткой селена

Я пытаюсь запустить тесты на реальных устройствах iOS параллельно, используя Appium с Selenium Grid. В настоящее время я могу создать Hub, создать экземпляры узлов и подключить Appium к каждому соответствующему узлу (проверено appium_log). Моя проблема сейчас в том, что я не могу правильно запустить драйвер Appium. Больше всего меня беспокоит то, что когда я запускаю Appium вне Selenium Grid, он работает нормально. Кажется, это несоответствие между возможностями Appium и Selenium Grid, но я не могу понять, что именно, потому что ошибка предполагает, что 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"
}
}

Код Ruby, используемый для запуска драйвера Appium (который работает без 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

person Felyppe Rodrigues    schedule 15.02.2017    source источник
comment
КАКИЕ ФАЙЛЫ JARS ВЫ ИСПОЛЬЗУЕТЕ? Я ДУМАЮ, У ВАС ОТСУТСТВУЕТ НЕКОТОРЫЕ ФАЙЛЫ   -  person Emna Ayadi    schedule 15.02.2017
comment
Вы забываете здесь кое-что важное. Невозможно запустить ›1 симулятор IOS на вашем Mac одновременно. К счастью, на помощь пришел Facebook: github.com/facebook/FBSimulatorControl только после того, как вам удастся запустить несколько симуляторов на ваш Mac, тогда вы можете начать думать о конфигурации сетки селена   -  person David Ep    schedule 15.02.2017
comment
Эмма: Я использую selenium-server-standalone-2.53.0.jar и appium_lib 8.0.2.   -  person Felyppe Rodrigues    schedule 15.02.2017
comment
Дэвид: Я использую настоящие мобильные устройства, а не симуляторы. Кроме того, в этой проблеме я пытаюсь создать экземпляр appium только на устройстве, поэтому здесь это не проблема.   -  person Felyppe Rodrigues    schedule 15.02.2017
comment
Все еще не знаете, как решить эту проблему, есть новости?   -  person Felyppe Rodrigues    schedule 17.02.2017


Ответы (2)


Проблема решена, надеюсь, никто не столкнется с этой проблемой, но если они это сделают, то вот что было не так. В возможностях, описанных в ruby, используемом для запуска appium, я давал порт узла selenium вместо порта appium.

person Felyppe Rodrigues    schedule 22.02.2017

Вам необходимо скачать java-клиент для appium и использовать его вместо selenium-сервера.

Ссылка на jar-файл java-клиента> https://mvnrepository.com/artifact/io.appium/java-client/5.0.0-BETA3

person M Tofey    schedule 20.02.2017
comment
java-клиент предназначен для реализации java, я использую ruby. Я загрузил appium_lib 8.0.2 для ruby ​​и использую его. Серверная банка селена используется для создания сетки и узлов селена. - person Felyppe Rodrigues; 20.02.2017