Appium: Skript kann auf mehreren verbundenen Android-Geräten nicht ausgeführt werden
Erstellte mehrere Instanzen des Appiums. Von der Konsole aus starte ich:
node . -p 4722 -U Z*****K --chromedriver-port 9
515 -bp 2251
node . -p 4723 -U T*****K --chromedriver-port 9
516 -bp 2252
Instanzen werden auf beiden Geräten erstellt, die URL wird jedoch nur auf dem zweiten verbundenen Gerät geöffnet. Der Browser auf dem ersten Gerät bleibt nur geöffnet, ohne dass die URL geöffnet wird.
Code:
Specflow-Datei:
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!!");
}
}
}
Instanzen werden auf beiden Geräten erstellt, die URL wird jedoch nur auf dem zweiten verbundenen Gerät geöffnet. Der Browser im ersten Gerät bleibt einfach geöffnet, ohne dass die URL geöffnet wird.
Ist die Treiberinstanz des ersten Geräts überschrieben (?). Hier ist meine Programmierbeschränkung, ein Tester und kein Entwickler zu sein. Bitte um Hilfe! Danke im Voraus