Невозможно создать новый удаленный сеанс с желаемыми возможностями - PullRequest
0 голосов
/ 19 марта 2019

Я хочу сделать параллельное выполнение на двух устройствах с использованием сетки селена.Все было сделано гладко, прямо с установленного JSON, Run Appium Desktop для каждого устройства.

Соединение установлено с appium :

public class ApplicationHandling {

public static AndroidDriver driver;
public static ExtentTest test;
public static ExtentReports extent;
//public static boolean waitForPresenceOfElelment;
public static ConfigFileReader cfg;

public  ApplicationHandling()
{
    cfg = new ConfigFileReader();
    System.out.println("Inside application handling constructor");
    Date date=new Date();
    SimpleDateFormat dateFormatFolder = new SimpleDateFormat("dd_MMM_yyyy");
    File ResultDir = new File(System.getProperty("user.dir")+File.separator+"/FrameworkReports/"+dateFormatFolder.format(date));
    System.out.println(ResultDir);
    // Defining Directory/Folder Name
    if (!ResultDir.exists()){  // Checks that Directory/Folder Doesn't Exists!
        ResultDir.mkdir();
    }
    SimpleDateFormat dateFormat=new SimpleDateFormat("dd_MMM_yyyy_hh_mm_ssaa");
    extent=new ExtentReports(ResultDir +"/" +"Report"+""+dateFormat.format(date)+".html",false);
}

public static RemoteWebDriver getInstance()
{
    System.out.println("remote webdriver");
    return driver;
}

@Parameters({"device","version"})
@BeforeTest(alwaysRun = true)
public static void setUp(String device,String version) throws MalformedURLException, InterruptedException {
    DesiredCapabilities cap = new DesiredCapabilities();

    cap.setCapability("platformName", "Android");
    cap.setCapability("deviceName", device);
    cap.setCapability("noReset", true);
    cap.setCapability(CapabilityType.VERSION,version);
    cap.setCapability("automationName", cfg.getAutomationName());
    cap.setCapability ("appPackage", cfg.getAppPackage());
    cap.setCapability ("appActivity", 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);

    driver = new AndroidDriver<MobileElement>(new URL(cfg.getApplicationUrl()), cap);
    System.out.println(driver);
}


JSON:

{
  "capabilities":
  [
    {
      "deviceName": "Redmi",
      "platformName": "Windows",
      "browserName":"Android",
      "platformVersion": "7.0",
      "maxInstances": 1
    }
  ],
  "configuration":
  {
    "cleanUpCycle":2000,
    "timeout":30000,
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "url":"http://0.0.0.0:4723/wd/hub",
    "host": "0.0.0.0",
    "port": 4723
    "maxSession": 1,
    "register": true,
    "registerCycle": 5000,
    "hubPort": "4444",
    "hubHost": "127.0.0.1"
  }
}


Testng.xml

<test name="test_redmi">
    <parameter name="device" value="Redmi"/>
    <parameter name="version" value="7.0"/>
    <classes>
        <class name="Tests.LoginTest">
             <methods>
                 <include name="loginOTP"/>
             </methods>
        </class>
    </classes>


Журнал ошибок

org.openqa.selenium.remote.ProtocolHandshake createSession INFO: откат к прямому соединению с удаленным концом W3C

org.openqa.selenium.SessionNotCreatedException: невозможно создать новый удаленныйсессия.Желаемые возможности = Возможности [{appPackage = "com.amhi.healthjinn", appActivity = "com.amhi.healthjinn.MainActivity", noReset = true, имя-автомата = uiautomator2, имя-платформы = Android, имя-устройства = Moto E, версия = 7.1.2}], необходимые возможности = возможности [{}] Информация о сборке: версия: «неизвестно», редакция: «1969d75», время: «2016-10-18 09:43:45 -0700»

-> Это дает мне ошибку, когда я создаю экземпляр драйвера.

1 Ответ

0 голосов
/ 20 марта 2019

Я недавно перешел с Appium Desktop на Appium Studio, так как они поддерживают параллельное выполнение и имеют плагины для настройки каркасов на разных языках, таких как Java, C #, Ruby и так далее.Прочитайте эту документацию, чтобы узнать больше о параллельном выполнении.

...