Example #1
0
        public void LicenseTest()
        {
            // Test if the license doesn't exist.
            session.FindElementByName("Extract").Click();
            Assert.IsTrue(session.FindElementByClassName("LicenseCheck").Enabled);
            session.FindElementByName("BACK").Click();
            session.FindElementByName("MENU").Click();
            session.FindElementByName("MANAGE LICENSES").Click();

            secondarySession = Utility.CreateNewSession(CommonTestSettings.Licesnse);
            var existingApplicationTopLevelWindow = secondarySession.CurrentWindowHandle;

            // Create a new session by attaching to an existing application top level window
            AppiumOptions opt = new AppiumOptions();

            opt.AddAdditionalCapability("appTopLevelWindow", existingApplicationTopLevelWindow);
            secondarySession = new WindowsDriver <WindowsElement>(new Uri(CommonTestSettings.WindowsApplicationDriverUrl), opt);

            secondarySession.FindElementByName("Add license").Click();
            var currentWindowHandle = secondarySession.CurrentWindowHandle;
            var allWindowHandles2   = secondarySession.WindowHandles;

            secondarySession.SwitchTo().Window(allWindowHandles2[0]);

            secondarySession.Keyboard.SendKeys(License.p1);
            secondarySession.Keyboard.SendKeys(Keys.Tab);
            secondarySession.Keyboard.SendKeys(License.p2);
            secondarySession.Keyboard.SendKeys(Keys.Tab);
            secondarySession.Keyboard.SendKeys(License.p3);
            secondarySession.Keyboard.SendKeys(Keys.Tab);
            secondarySession.Keyboard.SendKeys(License.p4);
            secondarySession.FindElementByName("Activate online").Click();
            secondarySession.FindElementByName("Activate").Click();
            secondarySession.FindElementByName("OK").Click();
            secondarySession.SwitchTo().Window(allWindowHandles2[1]);
            secondarySession.FindElementByName("Close").Click();
            session.FindElementByName("HOME").Click();
        }
Example #2
0
        private DriverOptions GetNativeCapabilities()
        {
            DriverOptions driverOptions = null;

            switch (mContextType)
            {
            case eContextType.NativeIOS:
            case eContextType.NativeAndroid:
                driverOptions = new AppiumOptions();
                break;

            case eContextType.WebAndroid:
                driverOptions = new ChromeOptions();
                break;

            case eContextType.WebIOS:
                driverOptions = new SafariOptions();
                break;

            default:
                driverOptions = new AppiumOptions();
                break;
            }

            if (!string.IsNullOrEmpty(Perfecto_Token))
            {
                driverOptions.AddAdditionalCapability("securityToken", Perfecto_Token);
            }
            else
            {
                driverOptions.AddAdditionalCapability("user", Perfecto_User_Name);
                driverOptions.AddAdditionalCapability("password", Perfecto_Password);
            }

            driverOptions.AddAdditionalCapability("deviceName", Perfecto_Device_ID);

            return(driverOptions);
        }
Example #3
0
        public void SetDriver(Share.Browser browser, string environment, string platform)
        {
            AppiumOptions capabilities = null;
            var           localHub     = "http://localhost:4723/wd/hub";
            string        getPlatform  = null;

            switch (browser)
            {
            case Share.Browser.Chrome:
                break;

            case Share.Browser.Edge:
                break;

            case Share.Browser.Firefox:
                break;

            case Share.Browser.IE:
                break;

            case Share.Browser.Safari:
                break;

            case Share.Browser.Android:
                capabilities         = Base.CreateMobileCapabilities();
                _androidDriver.Value = new AndroidDriver <AndroidElement>(GlobalVar.Uri, capabilities);
                break;

            case Share.Browser.Ipad:
            case Share.Browser.Iphone:
                capabilities     = Base.CreateMobileCapabilities();
                _iosDriver.Value = new IOSDriver <IOSElement>(GlobalVar.Uri, capabilities);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(browser), browser, null);
            }
        }
Example #4
0
        public void CheckThatServiseIsNotRunWhenTheCreatingOfANewSessionIsFailed()
        {
            AppiumOptions capabilities = Env.isSauce()
                ? //it will be a cause of error
                                         Caps.getAndroid501Caps(Apps.get("androidApiDemos"))
                : Caps.getAndroid19Caps(Apps.get("androidApiDemos"));

            capabilities.AddAdditionalCapability(MobileCapabilityType.DeviceName, "iPhone Simulator");
            capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformName, MobilePlatform.IOS);

            AppiumServiceBuilder builder = new AppiumServiceBuilder();
            AppiumLocalService   service = builder.Build();

            service.Start();

            IOSDriver <AppiumWebElement> driver = null;

            try
            {
                try
                {
                    driver = new IOSDriver <AppiumWebElement>(service, capabilities);
                }
                catch (Exception e)
                {
                    Assert.IsTrue(!service.IsRunning);
                    return;
                }
                throw new Exception("Any exception was expected");
            }
            finally
            {
                if (driver != null)
                {
                    driver.Quit();
                }
            }
        }
Example #5
0
        public static WindowsDriver <WindowsElement> GetDesktopDriver()
        {
            var ops = new AppiumOptions();

            ops.AddAdditionalCapability("app", "Root");
            var driver = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4724"), ops);

            driver.Keyboard.PressKey(Keys.Command + "s" + Keys.Command);
            Thread.Sleep(2000);
            driver.Keyboard.PressKey("Twitter");
            Thread.Sleep(2000);
            driver.Keyboard.PressKey(Keys.Enter);
            Thread.Sleep(2000);
            driver.Keyboard.PressKey(Keys.Escape);

            var twitterWindow = driver.FindElementByName("Twitter");
            var twitterHandle = int.Parse(twitterWindow.GetAttribute("NativeWindowHandle")).ToString("x");

            ops = new AppiumOptions();
            ops.AddAdditionalCapability("appTopLevelWindow", twitterHandle);

            return(new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4724"), ops));
        }
Example #6
0
        private AndroidDriver <AppiumWebElement> InitMobileDriverOnLocalDevice()
        {
            AppiumOptions options = new AppiumOptions();

            options.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
            options.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "9.0");

            //options.AddAdditionalCapability(MobileCapabilityType.DeviceName, "Samsung Galaxy S8");
            options.AddAdditionalCapability(MobileCapabilityType.DeviceName, "emulator-5554");

            options.AddAdditionalCapability("phoneOnly", false);
            options.AddAdditionalCapability("tabletOnly", false);
            options.AddAdditionalCapability("privateDevicesOnly", false);

            options.AddAdditionalCapability(MobileCapabilityType.App, @"c:\Users\USER\Downloads\eyes-android-hello-world.apk");

            options.AddAdditionalCapability("idleTimeout", 300);

            AndroidDriver <AppiumWebElement> driver = new AndroidDriver <AppiumWebElement>(
                new Uri("http://127.0.0.1:4723/wd/hub"), options, TimeSpan.FromMinutes(5));

            return(driver);
        }
        private static WindowsApplication StartApplication(IServiceProvider services)
        {
            var isRemoteFromEnv = EnvironmentConfiguration.GetVariable("isRemote");

            bool.TryParse(isRemoteFromEnv, out var isRemote);
            Uri           driverServer;
            AppiumOptions options = new AppiumOptions();

            if (!isRemote)
            {
                var driverService = AppiumLocalService.BuildDefaultService();
                driverService.Start();
                driverServer            = driverService.ServiceUrl;
                options.PlatformVersion = "10";
                options.PlatformName    = "Windows";
                options.DeviceName      = "WindowsPC";
            }
            else
            {
                driverServer = new Uri(EnvironmentConfiguration.GetVariable("driverServer") ?? DefaultDriverServer);
            }
            return(new WindowsApplication(Path.GetFullPath(SupportedApplication), driverServer, services.GetRequiredService <ITimeoutConfiguration>(), options));
        }
Example #8
0
        public static void StartApp()
        {
            if (app != null && TouchScreen != null)
            {
                return;
            }

            StopApp();

            var opts = new AppiumOptions();

            opts.AddAdditionalCapability("app", AppId);

            app = new WindowsDriver <WindowsElement>(new Uri(WindowsApplicationDriverUrl), opts);
            Assert.IsNotNull(app);
            Assert.IsNotNull(app.SessionId);

            // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times
            app.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);

            TouchScreen = new RemoteTouchScreen(app);
            Assert.IsNotNull(TouchScreen);
        }
        public void BeforeTest()
        {
            var ops = new AppiumOptions();

            ops.AddAdditionalCapability("app", "Root");
            driver = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4724"), ops);

            driver.Keyboard.PressKey(Keys.Command + "s" + Keys.Command);
            Thread.Sleep(1000);
            driver.Keyboard.PressKey("Twitter");
            Thread.Sleep(1000);
            driver.Keyboard.PressKey(Keys.Enter);
            Thread.Sleep(1000);
            driver.Keyboard.PressKey(Keys.Escape);

            var twitterWindow = driver.FindElementByName("Twitter");
            var twitterHandle = int.Parse(twitterWindow.GetAttribute("NativeWindowHandle")).ToString("x");

            ops = new AppiumOptions();
            ops.AddAdditionalCapability("appTopLevelWindow", twitterHandle);
            driver = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4724"), ops);
            //System.Xml.Linq.XDocument.Parse(driver.PageSource).Save("test3.xml", System.Xml.Linq.SaveOptions.None);
        }
Example #10
0
        public static void SetupOptions(bool installApp = false)
        {
            var driverOption = new AppiumOptions();

            driverOption.AddAdditionalCapability(MobileCapabilityType.PlatformName, GlobalVar.PlatformName);
            driverOption.AddAdditionalCapability(MobileCapabilityType.DeviceName, GlobalVar.DeviceName);
            driverOption.AddAdditionalCapability(MobileCapabilityType.NewCommandTimeout, GlobalVar.Timeout);
            driverOption.AddAdditionalCapability(MobileCapabilityType.App, GlobalVar.ApkPathDemos);
            driverOption.AddAdditionalCapability(MobileCapabilityType.Udid, GlobalVar.Udid);
            driverOption.AddAdditionalCapability(MobileCapabilityType.AutomationName, GlobalVar.AutomationName);
            driverOption.AddAdditionalCapability("autoGrantPermissions", GlobalVar.Permissions);
            driverOption.AddAdditionalCapability("allowSessionOverride", GlobalVar.SessionOverride);
            driverOption.AddAdditionalCapability("appPackage", AppPackage);
            //driverOption.AddAdditionalCapability("appActivity", GlobalVar.AppActivity + "EntryActivity");
            GlobalVar.Driver = new AndroidDriver <AndroidElement>(GlobalVar.Uri, driverOption);
            MiscFunctions.SetDriver(GlobalVar.Driver);

            //Install API DEMOS apk
            if (installApp)
            {
                GlobalVar.Driver.InstallApp(GlobalVar.ApkPathDemos);
            }
        }
Example #11
0
        public void TestMethod10()
        {
            var notepad = @"C:\Windows\System32\notepad.exe";

            var options = new AppiumOptions();

            options.AddAdditionalCapability("app", notepad);

            var driver = new WindowsDriver <WindowsElement>(new Uri(" http://127.0.0.1:4723/"), options);

            var textEditor = driver.FindElementByAccessibilityId("15");

            var wait = new OpenQA.Selenium.Support.UI.WebDriverWait(textEditor.WrappedDriver, TimeSpan.FromSeconds(30));

            textEditor.SendKeys("ABCDEF");
            wait.Until(ExpectedConditions.ElementToBeClickable(textEditor));
            textEditor.Click();
            textEditor.Click();
            textEditor.Click();
            textEditor.Click();
            textEditor.Click();
            textEditor.Click();
        }
Example #12
0
        public static void Setup(TestContext context)
        {
            // Launch Paint 3D application if it is not yet launched
            if (ourSession == null)
            {
                var options = new AppiumOptions();
                options.AddAdditionalCapability("app", PaintAppId);
                options.AddAdditionalCapability("deviceName", "WindowsPC");
                ourSession = new WindowsDriver <WindowsElement>(new Uri(WinAppDriverUrl), options);

                Assert.IsNotNull(ourSession);
                Assert.IsNotNull(ourSession.SessionId);

                // Verify that Notepad is started with untitled new file
                //Assert.AreEqual("Untitled - Notepad", ourSession.Title);

                // Set implicit timeout to 1.5 seconds to make element search to retry every 500 ms for at most three times.
                ourSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1.5);

                //ourEditbox = ourSession.FindElementByClassName("Edit");
                //Assert.IsNotNull(ourEditbox);
            }
        }
        public static void Main()
        {
            appiumLocalService = new AppiumServiceBuilder().UsingAnyFreePort().Build();
            appiumLocalService.Start();
            var appiumOptions = new AppiumOptions();

            appiumOptions.AddAdditionalCapability(MobileCapabilityType.DeviceName, "device");
            appiumOptions.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
            appiumOptions.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "9.0");
            appiumOptions.AddAdditionalCapability(AndroidMobileCapabilityType.AppPackage, "com.draeger.connect.cse");
            appiumOptions.AddAdditionalCapability(AndroidMobileCapabilityType.AppActivity, "com.draeger.connect.cse.MainActivity");
            appiumOptions.AddAdditionalCapability(MobileCapabilityType.NoReset, true);
            //new Uri("http://127.0.0.1:4723/wd/hub")
            driver = new AndroidDriver <AppiumWebElement>(appiumLocalService, appiumOptions);

            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
            AppiumWebElement approveBox             = driver.FindElementByAndroidUIAutomator("new UiSelector().textContains(\"Approve\");");

            approveBox.Click();
            AppiumWebElement background = driver.FindElementByAndroidUIAutomator("new UiSelector().textContains(\"Dräger CSE Mobile\");");

            background.Click();
        }
Example #14
0
        public static void Setup(TestContext context)
        {
            if (session == null)
            {
                var curDirPath = System.IO.Directory.GetCurrentDirectory();
                Console.WriteLine(curDirPath);
                while (System.IO.Directory.GetParent(curDirPath).Name != "SightSign")
                {
                    //Console.WriteLine("Full Path: " + curDirPath);
                    //Console.WriteLine("Cur Dir: " + System.IO.Path.GetDirectoryName(curDirPath));
                    Console.WriteLine("Parent Dir: " + System.IO.Directory.GetParent(curDirPath).Name);

                    curDirPath = System.IO.Directory.GetParent(curDirPath).FullName;
                }
                curDirPath = System.IO.Directory.GetParent(curDirPath).FullName;
                var SightSignAppId = curDirPath + SightSignAppExe;
                Console.WriteLine(SightSignAppId);
                var appiumOptions = new AppiumOptions();
                appiumOptions.AddAdditionalCapability("app", SightSignAppId);
                appiumOptions.AddAdditionalCapability("deviceName", "WindowsPC");
                session = new WindowsDriver <WindowsElement>(new Uri(WindowsApplicationDriverUrl), appiumOptions);
            }
        }
Example #15
0
        public AppiumOptions CreateAppiumOptions(MemberInfo memberInfo, Type testClassType)
        {
            var appiumOptions = new AppiumOptions();

            AddAdditionalCapabilities(testClassType, appiumOptions);

            appiumOptions.AddAdditionalCapability("browserName", string.Empty);
            appiumOptions.AddAdditionalCapability("deviceName", AppConfiguration.DeviceName);
            appiumOptions.AddAdditionalCapability("app", AppConfiguration.AppPath);
            appiumOptions.AddAdditionalCapability("platformVersion", AppConfiguration.PlatformVersion);
            appiumOptions.AddAdditionalCapability("recordVideo", RecordVideo);
            appiumOptions.AddAdditionalCapability("recordScreenshots", RecordScreenshots);
            appiumOptions.AddAdditionalCapability("appiumVersion", "1.8.1");

            var sauceLabsCredentialsResolver = new SauceLabsCredentialsResolver();
            var credentials = sauceLabsCredentialsResolver.GetCredentials();

            appiumOptions.AddAdditionalCapability("username", credentials.Item1);
            appiumOptions.AddAdditionalCapability("accessKey", credentials.Item2);
            appiumOptions.AddAdditionalCapability("name", testClassType.FullName);

            return(appiumOptions);
        }
Example #16
0
        private static void tryInitializeSession()
        {
            AppiumOptions appiumOptions = new AppiumOptions();

            appiumOptions.AddAdditionalCapability("app", FilesAppIDs[appIdIndex]);
            appiumOptions.AddAdditionalCapability("deviceName", "WindowsPC");
            try
            {
                _session = new WindowsDriver <WindowsElement>(new Uri(WindowsApplicationDriverUrl), appiumOptions);
            }
            catch (OpenQA.Selenium.WebDriverException exc)
            {
                // Use next app ID since the current one was failing
                if (exc.Message.Contains("Package was not found"))
                {
                    appIdIndex++;
                }
                else
                {
                    Console.WriteLine("Failed to update start driver, got exception:" + exc.Message);
                }
            }
        }
        /// <summary>
        /// Create appium options.
        /// </summary>
        /// <param name="configurationParameters">The configuration parameters.</param>
        /// <returns>The appium options.</returns>
        public static AppiumOptions CreateAppiumOptions(ConfigurationParameters configurationParameters)
        {
            var appiumOptions = new AppiumOptions();

            if (configurationParameters.BrowsersConfiguration.Browser == Browser.ChromeAndroid7)
            {
                appiumOptions.AddAdditionalCapability("deviceName", "generic_x86");
                appiumOptions.AddAdditionalCapability("platformVersion", "7.0");
            }
            else if (configurationParameters.BrowsersConfiguration.Browser == Browser.ChromeAndroid9)
            {
                appiumOptions.AddAdditionalCapability("deviceName", "Nexus_5X_API_28");
                appiumOptions.AddAdditionalCapability("platformVersion", "9");
            }

            appiumOptions.AddAdditionalCapability("platformName", "Android");
            appiumOptions.AddAdditionalCapability("fastReset", "True");
            appiumOptions.AddAdditionalCapability("browserName", "Chrome");
            appiumOptions.AddAdditionalCapability("unicodeKeyboard", true);
            appiumOptions.AddAdditionalCapability("resetKeyboard", true);

            return(appiumOptions);
        }
Example #18
0
        public static void ClassInitialize(TestContext context)
        {
            var appiumOptions = new AppiumOptions();

            appiumOptions.AddAdditionalCapability(MobileCapabilityType.BrowserName, "chrome");
            appiumOptions.AddAdditionalCapability("version", "mobile-79.0");
            appiumOptions.AddAdditionalCapability("enableVNC", true);
            appiumOptions.AddAdditionalCapability("enableVideo", true);
            appiumOptions.AddAdditionalCapability("desired-skin", "WSVGA");
            appiumOptions.AddAdditionalCapability("desired-screen-resolution", "1024x600");

            try
            {
                var timeout = TimeSpan.FromSeconds(120);
                _driver = new AndroidDriver <AndroidElement>(new Uri("http://127.0.0.1:4444/wd/hub"), appiumOptions, timeout);
                _driver.Manage().Timeouts().ImplicitWait           = TimeSpan.FromSeconds(120);
                _driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(120);
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
        }
Example #19
0
        public void iOS13()
        {
            var capabilities = new AppiumOptions();

            //We can run on any iPhone Device
            capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformVersion, "13");
            capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformName, "iOS");
            //TODO it's a best practice to set the appium version so that you're always getting the latest
            capabilities.AddAdditionalCapability("appiumVersion", APPIUM_VERSION);

            /*
             * !!!!!!
             * TODO first you must upload an app to RDC so that you get your app key
             * Then, make sure you can hardcode it here just to get started
             */
            capabilities.AddAdditionalCapability("testobject_api_key", new ApiKeys().Rdc.Apps.SampleAppIOS);
            capabilities.AddAdditionalCapability("name", TestContext.CurrentContext.Test.Name);
            capabilities.AddAdditionalCapability("newCommandTimeout", 90);

            //60 seconds for the connection timeout
            _driver = new IOSDriver <IOSElement>(new Uri(RdcUsHubUrl), capabilities);
            Assert.True(IsLoginButtonDisplayed());
        }
        public static void ClassInitialize(TestContext context)
        {
            var appiumOptions = new AppiumOptions();

            appiumOptions.AddAdditionalCapability("pCloudy_Username", "yourUserName");
            appiumOptions.AddAdditionalCapability("pCloudy_ApiKey", "yourKey");
            appiumOptions.AddAdditionalCapability("pCloudy_DurationInMinutes", 10);
            appiumOptions.AddAdditionalCapability("newCommandTimeout", 600);
            appiumOptions.AddAdditionalCapability("launchTimeout", 90000);
            appiumOptions.AddAdditionalCapability("pCloudy_DeviceFullName", "SAMSUNG_GalaxyJ52016_Android_7.1.1_09c99");
            appiumOptions.AddAdditionalCapability("platformVersion", "09c99");
            appiumOptions.AddAdditionalCapability("platformName", "Android");
            appiumOptions.AddAdditionalCapability("pCloudy_ApplicationName", "ApiDemos-debug.apk");
            appiumOptions.AddAdditionalCapability("appPackage", "io.appium.android.apis");
            appiumOptions.AddAdditionalCapability("appActivity", ".ApiDemos");
            appiumOptions.AddAdditionalCapability("pCloudy_WildNet", "true");

            var timeout = TimeSpan.FromSeconds(120);

            _driver = new AndroidDriver <AndroidElement>(new Uri("https://device.pcloudy.com/appiumcloud/wd/hub"), appiumOptions, timeout);
            _driver.Manage().Timeouts().ImplicitWait           = TimeSpan.FromSeconds(120);
            _driver.Manage().Timeouts().AsynchronousJavaScript = TimeSpan.FromSeconds(120);
        }
Example #21
0
        public void AlreadyRunningApp()
        {
            AppiumOptions appOptions = new AppiumOptions();

            appOptions.AddAdditionalCapability("platformName", "Windows");
            appOptions.AddAdditionalCapability("app", "Root");
            appOptions.AddAdditionalCapability("deviceName", "WindowsPC");
            WindowsDriver <WindowsElement> Session = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4723"), appOptions);

            WindowsElement applicationWindow = null;
            var            openWindows       = Session.FindElementsByClassName("Window");

            foreach (var window in openWindows)
            {
                Console.WriteLine(window.GetAttribute("Name"));
                if (window.GetAttribute("Name").StartsWith("SoapUI 5.5.0"))
                {
                    applicationWindow = window;
                    break;
                }
            }

            // Attaching to existing Application Window
            var topLevelWindowHandle = applicationWindow.GetAttribute("NativeWindowHandle");

            Console.WriteLine("Top level window handle " + topLevelWindowHandle);
            topLevelWindowHandle = int.Parse(topLevelWindowHandle).ToString("X");
            Console.WriteLine("Top level window handle after parse" + topLevelWindowHandle);

            AppiumOptions appOptions1 = new AppiumOptions();

            appOptions1.AddAdditionalCapability("deviceName", "WindowsPC");
            appOptions1.AddAdditionalCapability("appTopLevelWindow", topLevelWindowHandle);
            Session = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4723"), appOptions1);
            Console.WriteLine(Session.Title);
            Session.Close();
        }
        public AppiumDriver <AndroidElement> SetUpAppiumDriver()
        {
            AndroidDriver <AndroidElement> androidDriver = null;

            try
            {
                var appFullPath = Directory.GetParent(Directory.GetCurrentDirectory()) + AndroidApplicationPath;

                // See Appium Capabilities wiki.
                var appOptions = new AppiumOptions();
                appOptions.AddAdditionalCapability("platformName", "Android");
                appOptions.AddAdditionalCapability("platformVersion", "7.1.1");
                appOptions.AddAdditionalCapability("fastReset", "True");
                appOptions.AddAdditionalCapability("app", appFullPath);

                // To see the device name with the cmd console check adb devices -l
                appOptions.AddAdditionalCapability("deviceName", "emulator-5554");

                androidDriver = new AndroidDriver <AndroidElement>(new Uri("http://127.0.0.1:4723/wd/hub"), appOptions, TimeSpan.FromSeconds(600));

                this.objectContainer.RegisterInstanceAs(new AppDriver {
                    AppiumAndroidDriver = androidDriver
                });

                return(androidDriver);
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex);
                if (androidDriver != null)
                {
                    this.CloseAppiumDriver(androidDriver);
                }

                throw;
            }
        }
Example #23
0
        public void TestVmaxROVPlayer()
        {
            AppiumOptions appOptions = new AppiumOptions();

            appOptions.AddAdditionalCapability("app", @"C:\Program Files\VMAX Technologies, Inc\VMAX ROV Player x64\bin\VmPlayer2.exe");
            appOptions.AddAdditionalCapability("ms:waitForAppLaunch", "15");
            WindowsDriver <WindowsElement> ROVPLayerSession = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4723"), appOptions);

            Console.WriteLine("WindowsDriver is initialized");
            Console.WriteLine("Application Title: " + ROVPLayerSession.Title);

            //ROVPLayerSession.FindElementByXPath("//MenuItem[@Name='File']").Click();
            ROVPLayerSession.FindElementByXPath($"//MenuItem[starts-with(@Name, \"File\"]").Click();

            ROVPLayerSession.FindElementByAccessibilityId("18124").Click();



            ROVPLayerSession.FindElementByName("File").Click();


            Assert.IsFalse(ROVPLayerSession.FindElementByAccessibilityId("1025").Enabled);

            Console.WriteLine("Water Visibility (meters) spinner control is disabled");

            ROVPLayerSession.FindElementByName("Detritus").Click();
            Thread.Sleep(900);
            Console.WriteLine("Detritus button is clicked");

            Assert.IsTrue(ROVPLayerSession.FindElementByAccessibilityId("1025").Enabled);

            Console.WriteLine("Water Visibility (meters) spinner control is enabled");


            ROVPLayerSession.Close();
            ROVPLayerSession.Quit();
        }
        public void CreateNewGraph_Matrix_Test()
        {
            AppiumOptions opt = new AppiumOptions();

            opt.AddAdditionalCapability("app", fullPath);

            session = new RemoteWebDriver(new Uri(WindowsApplicationDriverUrl), opt);

            Actions builder = new Actions(session);


            session.FindElementByName("Create new graph").Click();

            session.SwitchTo().Window(session.WindowHandles[0]);

            session.FindElementsByClassName("WindowsForms10.EDIT.app.0.378734a_r3_ad1")[0].SendKeys("5");


            session.FindElementByName("OK").Click();


            session.FindElementsByClassName("WindowsForms10.EDIT.app.0.378734a_r3_ad1")[2].SendKeys("1");

            session.FindElementsByClassName("WindowsForms10.EDIT.app.0.378734a_r3_ad1")[8].SendKeys("4");

            session.FindElementsByClassName("WindowsForms10.EDIT.app.0.378734a_r3_ad1")[12].SendKeys("8");

            session.FindElementsByClassName("WindowsForms10.EDIT.app.0.378734a_r3_ad1")[23].SendKeys("8");


            session.FindElementByName("Create vertexes").Click();


            session.FindElementByName("Закрыть").Click();

            session.Quit();
        }
        public static IWebDriver GetNewDriver(DriverType type)
        {
            DesiredCapabilities dc;

            switch (type)
            {
            case DriverType.Chrome:
                return(new ChromeDriver(Config.ChromeDriverPath));

            case DriverType.Android:
                var appiumOptions = new AppiumOptions();
                appiumOptions.AddAdditionalCapability("deviceName", Config.DeviceName);
                appiumOptions.PlatformName = Config.PlatformName;
                appiumOptions.AddAdditionalCapability("platformVersion", Config.PlatformVersion);
                appiumOptions.AddAdditionalCapability("browserName", Config.BrowserName);
                appiumOptions.AddAdditionalCapability(MobileCapabilityType.App, Config.AppName);
                appiumOptions.AddAdditionalCapability("newCommandTimeout", "200");
                return(new AndroidDriver <AndroidElement>(appiumOptions));


            case DriverType.SauceLabsRemote:
                dc = new DesiredCapabilities();
                dc.SetCapability(CapabilityType.BrowserName, Environment.GetEnvironmentVariable("SELENIUM_BROWSER"));
                dc.SetCapability(CapabilityType.Version, Environment.GetEnvironmentVariable("SELENIUM_VERSION"));
                dc.SetCapability(CapabilityType.Platform, Environment.GetEnvironmentVariable("SELENIUM_PLATFORM"));
                dc.SetCapability("username", Environment.GetEnvironmentVariable("SAUCE_USERNAME"));
                dc.SetCapability("accessKey", Environment.GetEnvironmentVariable("SAUCE_ACCESS_KEY"));
                dc.SetCapability("name", ScenarioContext.Current.ScenarioInfo.Title);
                return(new RemoteWebDriver(
                           new Uri("http://" + Environment.GetEnvironmentVariable("SAUCE_USERNAME") + ":" + Environment.GetEnvironmentVariable("SAUCE_ACCESS_KEY") + "@ondemand.saucelabs.com:80/wd/hub"),
                           dc,
                           TimeSpan.FromSeconds(600)));

            default:
                return(new FirefoxDriver());
            }
        }
Example #26
0
        public void SetupCalculatorSession(TestContext context)
        {
            this.windowsDriverService = new WindowsDriverServiceBuilder().Build();

            this.windowsDriverService.OutputDataReceived += (sender, e) =>
            {
                var outputData = e.Data?.Replace("\0", string.Empty);
                if (!String.IsNullOrEmpty(outputData))
                {
                    Console.WriteLine(outputData);
                }
            };

            this.windowsDriverService.Start();

            // Launch Calculator application if it is not yet launched
            if (this.CalculatorSession == null)
            {
                // Create a new  WinAppDriver session to bring up an instance of the Calculator application
                // Note: Multiple calculator windows (instances) share the same process Id
                var options = new AppiumOptions();

                if (context.Properties.TryGetValue("AppId", out object appId))
                {
                    options.AddAdditionalCapability("app", (string)appId);
                }
                else
                {
                    options.AddAdditionalCapability("app", defaultAppId);
                }

                options.AddAdditionalCapability("deviceName", "WindowsPC");
                this.CalculatorSession = new WindowsDriver <WindowsElement>(this.windowsDriverService.ServiceUrl, options);
                this.CalculatorSession.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
                Assert.IsNotNull(this.CalculatorSession);
            }
        }
        public void Setup()
        {
            var capabilities = new AppiumOptions();

            //We can run on any version of the platform as long as it's the correct device
            //Make sure to pick an Android or iOS device based on your app
            capabilities.AddAdditionalCapability(MobileCapabilityType.DeviceName, "Google Pixel 4");
            capabilities.AddAdditionalCapability(MobileCapabilityType.PlatformName, "Android");
            //make sure you set locale as sometimes it opens in a different location and throws off locations
            capabilities.AddAdditionalCapability("locale", "en");
            capabilities.AddAdditionalCapability("language", "en");
            //The next major version of Appium (2.x) will **require** this capability
            capabilities.AddAdditionalCapability("automationName", "UiAutomator2");
            //It's a good practice to set an appWaitActivity so that the automation knows when the app is loaded
            capabilities.AddAdditionalCapability("appWaitActivity", "com.swaglabsmobileapp.MainActivity");
            //It's a good practice to use the latest appium version
            capabilities.AddAdditionalCapability("appiumVersion", "1.17.1");

            /*
             * !!!!!!
             * TODO first you must upload an app to RDC so that you get your app key
             * Then, make sure you can hardcode it here just to get started
             */
            capabilities.AddAdditionalCapability("testobject_api_key", new ApiKeys().Rdc.Apps.SampleAppAndroid);
            capabilities.AddAdditionalCapability("name", TestContext.CurrentContext.Test.Name);
            //It's important to keep the newCommandTimeout on the higher end as Real Devices are slow
            capabilities.AddAdditionalCapability("newCommandTimeout", 180);

            /*
             * Getting Error: OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server for URL
             * https://us1.appium.testobject.com/wd/hub/session timed out after 60 seconds.
             *  ----> System.Net.WebException : The operation has timed out
             *
             * Solution: Try changing to a more popular device
             */
            _driver = new AndroidDriver <AndroidElement>(new Uri(RdcUsHubUrl), capabilities);
        }
        public void TestInit()
        {
            var options = new AppiumOptions();

            options.AddAdditionalCapability("app", "Microsoft.WindowsCalculator_8wekyb3d8bbwe!App");
            options.AddAdditionalCapability("deviceName", "WindowsPC");
            _driver = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4723"), options);
            _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(5);

            _programmerCalculatorPage = new ProgrammerCalculatorPage(_driver);
            _calculatorResults        = new CalculatorResults(_driver);

            // Identify calculator mode by locating the header
            try
            {
                header = _driver.FindElementByAccessibilityId("Header");
            }
            catch
            {
                header = _driver.FindElementByAccessibilityId("ContentPresenter");
            }

            // Ensure that calculator is in standard mode
            if (!header.Text.Equals("Programmer", StringComparison.OrdinalIgnoreCase))
            {
                _driver.FindElementByName("Open Navigation").Click();
                Thread.Sleep(TimeSpan.FromSeconds(1));
                var menu = _driver.FindElementByClassName("SplitViewPane");
                menu.FindElementByName("Programmer Calculator").Click();
                _driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(1);
                Assert.IsTrue(header.Text.Equals("Programmer", StringComparison.OrdinalIgnoreCase));
            }

            // Locate the calculatorResult element
            calculatorResult = _driver.FindElementByAccessibilityId("CalculatorResults");
            Assert.IsNotNull(calculatorResult);
        }
Example #29
0
        public void Auto()
        {
            WindowsDriver <WindowsElement> driver;
            AppiumOptions options = new AppiumOptions();

            //options.PlatformName = "Android";
            options.AddAdditionalCapability("deviceName", "MyDevice");
            options.AddAdditionalCapability("platformVersion", "PlatformV");
            options.AddAdditionalCapability("automationName", "UiAutomator2");
            options.AddAdditionalCapability("appPackage", "MyPackage");
            options.AddAdditionalCapability("appActivity", "MyActivity");

            Uri url = new Uri("http://127.0.0.1:4723/wd/hub");

            driver = new WindowsDriver <WindowsElement>(url, options);
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
            var username = "******";
            // Some example selectors
            var element = driver.FindElementByXPath("//*[@text='登录']");

            element.Click();
            //driver.FindElementByClassName("android.widget.EditText").SendKeys("test");
            //driver.FindElement(MobileBy.AndroidUIAutomator("new UiSelector().className(\"android.widget.EditText\").instance(1)")).SendKeys(username);
        }
        public static WindowsDriver <WindowsElement> GetDriver()
        {
            int retries = 5;

            AppiumOptions opt = new AppiumOptions();

            opt.AddAdditionalCapability("WindowsDeviceName", "WindowsPC");
            opt.AddAdditionalCapability("app", "31e6402e-0407-4419-a6c3-7c6d18576017_8sedpwrx9t26a!App");

            WindowsDriver <WindowsElement> driver = null;

            while (true)
            {
                try
                {
                    driver = new WindowsDriver <WindowsElement>(new Uri("http://127.0.0.1:4723"), opt);
                    break;
                }
                catch (WebDriverException e)
                {
                    Console.WriteLine("Failed to start the windows driver. Attempt: " + retries);
                    Console.WriteLine(e);
                    if (--retries == 0)
                    {
                        throw;
                    }
                    else
                    {
                        // do nothing
                    }
                }
            }
            driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);

            return(driver);
        }