appium の複数のインスタンスを作成しました。私が実行するコンソールから:
node . -p 4722 -U Z*****K --chromedriver-port 9
515 -bp 2251
node . -p 4723 -U T*****K --chromedriver-port 9
516 -bp 2252
インスタンスは両方のデバイスで作成されますが、URL は接続されている 2 番目のデバイスでのみ開きます。最初のデバイスのブラウザは、URL が開かれずに開いたままになります。
コード :
Specflow ファイル:
テスト機能
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!!");
}
}
}
インスタンスは両方のデバイスで作成されますが、URL は接続された 2 番目のデバイスでのみ開きます。最初のデバイスのブラウザは、URL が開かれずに開いたままになります。
最初のデバイスのドライバー インスタンスが上書きされていますか (?)。これが、開発者ではなくテスターであるという私のプログラミングの制限です。助けてください!前もって感謝します!