Откат к прямому соединению с удаленным концом W3C и SessionNotCreatedException: невозможно создать новый удаленный сеанс - PullRequest
0 голосов
/ 11 января 2019

При запуске скрипта appium выдается исключение:

Unable to create new remote session

, даже если я переопределяю его сеанс в настройках приложения. Я даю URL-адрес и другие параметры сценарию, имея конфигурацию .properties.

Android Studio Log:

file path: 
C:\Users\ab.chauhan\AndroidStudioProjects\AppiumHJ\app\configs\Configuration.properties
Inside application handling constructor
C:\Users\ab.chauhan\AndroidStudioProjects\AppiumHJ\app\FrameworkReports\11_Jan_2019
file path: C:\Users\ab.chauhan\AndroidStudioProjects\AppiumHJ\app\configs\Configuration.properties
Inside application handling constructor
C:\Users\ab.chauhan\AndroidStudioProjects\AppiumHJ\app\FrameworkReports\11_Jan_2019Before Suite Execution started
Driver:null
URL:http://0.0.0.0:4723/wd/hub
cap: Capabilities [{appPackage=cfg.getAppPackage(), appActivity=cfg.getAppActivity(), noReset=true, newCommandTimeout=4000, platformVersion=7.0 NRD90M, automationName=uiautomator2, platformName=Android, deviceName=Xiaomi Redmi Note 4 Android 7.0, API 23}]
Jan 11, 2019 6:40:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Jan 11, 2019 6:40:35 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Jan 11, 2019 6:40:36 PM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to straight W3C remote end connection
.
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{appPackage=cfg.getAppPackage(), appActivity=cfg.getAppActivity(), noReset=true, newCommandTimeout=4000, platformVersion=7.0 NRD90M, automationName=uiautomator2, platformName=Android, deviceName=Xiaomi Redmi Note 4 Android 7.0, API 23}], required capabilities = Capabilities [{}]
Build info: version: 'unknown', revision: '1969d75', time: '2016-10-18 09:43:45 -0700'
System info: host: 'GSG1PM-FT0384', ip: '10.10.23.99', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_152-release'
Driver info: driver.version: AndroidDriver

Сценарий Appium:

DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Xiaomi Redmi Note 4 Android 7.0, API 23");
cap.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "4000");
cap.setCapability("noReset", true);
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "7.0 NRD90M");
cap.setCapability("automationName", cfg.getAutomationName());
cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE,"cfg.getAppPackage()");
cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "cfg.getAppActivity()");
System.out.println("Before Suite Execution started");
System.out.println("Driver:"+driver);
System.out.println("URL:"+cfg.getApplicationUrl());
System.out.println("cap: "+cap);
try{
driver = new AndroidDriver<MobileElement>(new URL(cfg.getApplicationUrl()), cap);
System.out.println(driver);}
catch(MalformedURLException e){
    e.printStackTrace();}
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Ответ на ваш вопрос заключается в установленных вами возможностях.

Вам нужно изменить эти строки из ваших возможностей,

cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE,"cfg.getAppPackage()");
cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "cfg.getAppActivity()");

К

cap.setCapability (AndroidMobileCapabilityType.APP_PACKAGE, cfg.getAppPackage());
cap.setCapability (AndroidMobileCapabilityType.APP_ACTIVITY, cfg.getAppActivity());

На самом деле вы вызвали свой метод внутри кавычек, что не должно быть сделано. Позвоните прямо, как вы сделали для URL и AutomationName.

0 голосов
/ 11 января 2019

Это сообщение об ошибке ...

Jan 11, 2019 6:40:34 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
 INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end 
Jan 11, 2019 6:40:35 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
 INFO: Falling back to original OSS JSON Wire Protocol. 
Jan 11, 2019 6:40:36 PM org.openqa.selenium.remote.ProtocolHandshake createSession 
 INFO: Falling back to straight W3C remote end connection
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session.

org.openqa.selenium.SessionNotCreatedException: невозможно создать новый удаленный сеанс.

... означает, что AndroidDriver не смог инициировать / создать новый Удаленный сеанс .

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете, следующим образом:

  • Вы используете java.version 1.8.0_152-release, довольно старый и древний.

Решение

  • Обновление JDK до последних уровней JDK 8u191 .
  • Возьмите Перезагрузку системы .
  • Выполните ваши Test.
...