Appium: no se puede ejecutar el script en varios dispositivos Android conectados
Se creó una instancia múltiple de appium. desde la consola ejecuto:
node . -p 4722 -U Z*****K --chromedriver-port 9
515 -bp 2251
node . -p 4723 -U T*****K --chromedriver-port 9
516 -bp 2252
Las instancias se crean en ambos dispositivos, pero la URL solo se abre en el segundo dispositivo conectado. El navegador en el primer dispositivo permanece abierto sin que se abra la URL.
Código:
Archivo de flujo de especificación:
Test.feature
Scenario: Check Home Page
Given I am on home page
Then My title should be 'whatever'
Steps.cs
[Given(@"I am on home page")]
public void GivenIAmOnHofHomePage()
{
var testappium = new TestAppium();
testappium.SetUp();
testappium.OpenHomePage();
}
TestAppium.cs
using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
using OpenQA.Selenium.Appium.Interfaces;
using OpenQA.Selenium.Appium.MultiTouch;
using OpenQA.Selenium.Interactions;
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Appium.Android;
using OpenQA.Selenium.Appium.iOS;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TechTalk.SpecFlow;
namespace Mobile.Tests.UIAutomation
{
public class TestAppium
{
public static IWebDriver driver=null;
public void SetUp()
{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.SetCapability("device", "Android");
capabilities.SetCapability("browserName", "chrome");
capabilities.SetCapability("deviceName", "test");
capabilities.SetCapability("platformName", "Android");
capabilities.SetCapability("platformVersion", "5.0.1");
capabilities.SetCapability("udid", EnvironmentVariables.nexus);
driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4722/wd/hub"), capabilities, TimeSpan.FromSeconds(180));
DesiredCapabilities capabilitiess = new DesiredCapabilities();
capabilitiess.SetCapability("device", "Android");
capabilitiess.SetCapability("browserName", "chrome");
capabilitiess.SetCapability("deviceName", "Arpan Buch");
capabilitiess.SetCapability("platformName", "Android");
capabilitiess.SetCapability("platformVersion", "5.0.2");
capabilitiess.SetCapability("udid", EnvironmentVariables.motog);
driver = new RemoteWebDriver(new Uri("http://127.0.0.1:4723/wd/hub"), capabilitiess, TimeSpan.FromSeconds(180));
}
public void OpenHomePage()
{
driver.Navigate().GoToUrl("http://www.google.com");
Console.WriteLine("Page title is : " +driver.Title);
Assert.IsTrue(driver.Title.Equals("Google")," Sorry , the website didnt open!!");
}
}
}
Las instancias se crean en ambos dispositivos, pero la URL solo se abre en el segundo dispositivo conectado. El navegador en el primer dispositivo permanece abierto sin que se abra la url.
¿Se sobrescribe la instancia del controlador del primer dispositivo (?). Aquí está mi limitación de programación de ser un probador y no un desarrollador. ¡Por favor ayuda! ¡Gracias por adelantado!